顔も名前ももう覚えていないのですが、かつて私に影響を与えた人がいます。
1999 年の春、Lenovo は公開 Web サイトの構築を開始しました。私の主な仕事はデザインでしたが、実際には自分で Perl を見つけるのが好きでした (当時の CGI プログラムはほとんどが Perl でした)。学校で習った掲示板やチャット ルーム プログラムのコードとインターフェイス (C コードは 1,000 行未満で、Web での使い方がまだわかりません) が、ひどい Web サイトで使用されていました。通称「ハッピーホーム」。
秋か年末ごろ、北京大学(清華大学だったかも)出身とされるこの学生が、ニュースシステムの開発をアルバイトで手伝いに来ました。私はよく仕事をやめて、彼がコードを書いているのを見ています。彼の主な開発方法は、サーバーに接続し、Vi を開いて書き込みを開始することです。当時Solaris上でVIを使用していましたが、カーソルの移動や保存などの簡単な操作しかできず、慣れていませんでした。このように完全にVIを使って開発するというのはなかなか斬新な気がします。それが私と PHP との最初の接触でした。当時のバージョンは 3.0 だったので、彼が書いたファイル拡張子はすべて .php3 でした。私はフロントデスクのインターフェースとスタイルを担当しており、時々手書きでコードを書くこともあります。このようにして、執筆とテストを同時に行っていました (完全に正式なオンライン サーバー環境でした。今考えると本当に恐れることがありませんでした)。基本的なニュース管理システムをオンラインに構築するのに約 1 週間かかりました。このようにして、私は PHP のキャリアをスタートしました。
運用開始から半年も経たないうちに、このニュース管理システムは Lenovo Research Institute の同僚によって Java で完全に書き直されました。協力中にこっそり Java 言語や EJB についても少し勉強しました。そして、私より1、2歳上の同級生は連絡が取れなくなり、今何をしているのか分かりません。問題は、彼の名前をまったく覚えていないこと、そして連絡先も知らないということです。私たちはお互いに内向的で、お互いに尋ねることもありません。なんとも奇妙な若者たちです。
Lenovo を退職する前、私は PHP でいくつかの小さなプロジェクトを作成していました。主な機能が広告管理、画像アップロード、HTML テキスト ブロック編集であった広告メンテナンスおよび更新システムを今でも覚えています。以前に Perl コードを勉強したことがあり、C の基本的な知識があるため、スクリプト言語として PHP がとても好きです。考えてみてください。当時、これほど豊富な拡張機能と、これほど学習しやすいコードを備えた Web スクリプトは他にありませんでした。データベース操作、画像生成についてはどうでしょうか (私はその GD ライブラリを使用して投票結果を表示するための円グラフを実装しました (もちろん、円グラフ生成アルゴリズムはコピーされました))、テキスト操作など、多くの拡張機能があります。さまざまなスタイルの無数の名前があり、自由な構文を備えており、これをやめることはできません。実際、その後の数年間は PHP が急速に普及した時期でした。
当時Lenovoが構築していたWebサイトは、ほとんどOracleデータベースを使用しており、光ファイバーアレイなどもあったと言われています。何年も経って、誰も世話をしてくれないのでドメイン名が登録されたと誰かが教えてくれたので、その時は気持ちが落ち着いたのを覚えています。 FM365.comに登録した人は後に265というサイトを作ったと言われています。
2002 年、私は同じく Lenovo 出身の友人 2 人とともに北京大学付属高等学校のオンライン スクールに通いました。当時オンラインにあったのはASP環境でした。私はこれまで ASP を使用したことがありませんでしたが、いくつかのモジュールを作成しましたが、Com がなければ、多くのアイデアを実装するのが困難であることがわかりました。ここでもう少し説明すると、ASP は VBScript と JScript の 2 つの言語をサポートしています。私は VB の構文があまり好きではないので、後で作成するモジュールを実装するために JScript を使用するようにしています。さらに、JScript は Hashtable と同様の Dictionary オブジェクトをサポートしており、辞書データを操作するのに非常に便利です。しかし、一般に、ASP はまだ弱すぎます。PHP が多機能サーベルであるなら、ASP は錆びた果物ナイフとしか考えられません。
人々の考えは変化し、現状に満足することはありません。約 1 年後、システム全体が徐々に .Net にアップグレードされました。初めて C# を使用し、それが Java に非常に似ていることに気づきました。また、階層化の概念を使用してシステム アーキテクチャを設計しようとしたのも初めてでした。この時期の同僚には霍居と戴飛がいた。レストランに行く途中、私は今でもトーチと3階がいいのか、4階がいいのかを話し合うことがよくあります。
Huo Ju は私にとってさらに役に立ち、影響を与えてくれました。また、「デザイン パターン」と「C++ 入門」の 2 冊の本もくれました (前者はよく読まれますが、後者は分厚いので私はあまり読んでいません。)何度かの引越しで捨てようと思いました。)
率直に言って、C# は多くのファミリーの長所を組み合わせた優れた言語であり、PHP などのスクリプト言語と比較すると、OO であり、十分に完成しています。それに比べて、PHP はあまりにも素朴です。さらに、私が初めてデザインパターンに触れたとき、これはトーチが言っていたように、ハンマーを手に持っているとそこら中に釘があるというようなもので、とても大きなハンマーでした。そのため、その間、私は同時に 2 つのことに夢中になっていたようです。1 つは WoW (まだパブリック ベータ版であるようです)、もう 1 つは C# でした。 C# と .Net のおかげで、大規模なスクリプトと無数のサブプロセスの作成からオブジェクト開発とマルチレイヤー アーキテクチャの設計を学び、移行することができました。
私がオンライン スクールで取り組んだ最後のプロジェクトは、b2 のオープンソース変換をベースとした、PHP の採用に戻ったマルチユーザー ブログ システムでした。私は個人的な観点から C# 言語がとても好きですが、Windows プラットフォームにはまだ自信がありません (Mono は当時まだ実験的なプロジェクトでした)。
2004 年頃、おそらく Java の影響により、CakePHP、Zend Framework、CodeIgniter、Symfony などのいくつかの開発フレームワークが PHP コミュニティにも登場しました。しかし、これらのフレームワークを見ていくつかのテストを行った後、行き詰まってしまいました。 Cake などは少し優れていますが、最も変態的なのは Zend です。これは、厳密に型指定された言語 (Java など) をほぼ完全にシミュレートし、完全に OO メソッドを使用してモジュールとクラスを設計します。方向性と複雑さは Java に直接当てはまります。
PHP は本当にこのように記述する必要がありますか?これは Java や .Net とどう違うのですか? PHPに利点はありますか?さまざまなフォーラムでさまざまな枠組み間の舌戦を見るのはうんざりだ。これ以上道を踏み外さないために、私は豪華客船から逃げました。しかし、PHP をどのように書けばよいのか、方向性が分からなくなってしまったようです。私はさまざまなオープンソース プロジェクトや書籍で答えを探しています。いくつかのプロジェクトが失敗し、作業単位が変更されたことで、私の考え方も大きく変わりました。次の 2 年ほどで、私は Web 開発と構造レイヤー化についての理解に基づいて、コミュニティの傾向にはあまり注意を払わず、自分の使用に適したいくつかの基本的なライブラリを作成しました。それはフレームワークではありませんでした。使いやすい。
私は、Python、Django、Ruby などの他の新しい言語やフレームワークにも触れて学習しました。中でも、Python の言語機能は、文法規則の一部として明瞭さ (または端正さ) を使用する、私がこれまでに見た初めてのプログラミング言語です。おそらく私はクリーンであることが好きで、私の考えが変わったのかもしれません。「それを実行するための明白な方法は 1 つ、できれば 1 つだけあるべきである」という Python の言語哲学は、非常に完璧で正しい概念です。 PHP の傷跡や落とし穴を振り返ると、こう思わずにはいられません。PHP の進歩は遅すぎて、あまりにも進歩的ではないのでしょうか?なぜこのようなことが起こっているのでしょうか?
ここで別のクラスメートに感謝したいと思います。数年前、私が南西三環状道路のどこかに家を借りていたときに、Hao Peiqiang が Python について教えてくれました (おそらくそれが私が手元に残しておいて、一度も使わなかった理由かもしれません)。置いておいて)当時彼はまだ独身で純真で、みんなで将来への憧れや様々な夢を語っていました。
PHP は言語としては習得も使用も簡単で、基礎や背景はほとんど必要ありません (誰からも叱られる北京大学の卒業生など)。コードの内容が大きく異なります。しかし、人は使い続けるほどに限界を感じます。
少し前に、PHP は最低だと言っている人を見かけました。これは醜いし、視点は恣意的ですが、彼の記事で言及されている PHP の機能は、引用された数人の外国人の意見も含め、すべて真実です。あれやこれやなど。
私の友人のラオ・ワンは、「言語は重要ではない、重要なのは思考だ」と言いました。これは本当です。しかし、アイデアを獲得するのは非常に難しく、一定の期間の蓄積と、ある程度の才能、そして人々の脳に植え付けられるわずかな機会さえも必要です。高品質で制御可能なコードを実現するには、数十ページにわたる規約と仕様を作成し、定期的にレビューする必要があります。そうしないと、ある日突然、無数の地雷が踏まれるのを待つことになります。生産性に影響を与える要因には、人的要因、言語、ツール (プラットフォームを含む) 要因などがあります。ある言語が明確で、明確で、厳格な高品質のコードを簡単に実現できる一方、別の言語が同じ品質要件を達成するには長年の経験と細心の注意を必要とする場合、どちらが優れているかを判断するのは難しくないと思われます。
実は、私は非常に感情的な人間です(:D) 何年もの間、ずっと一緒に苦労してきましたが、今、嫌なことを言っているので、本当に気分が悪いです(:S) 。
現実は人々にいくらかの慰めを与えます。多くの人が PHP を使用しており、多数の Web サイトが PHP 上で実行されているため、PHP は実際に使用されています。すべてが変化しており、結果はまだわかりません。
著者: liut 原文: http://liut.cc/blog/2010/04/all-about-php.html