ドーパミンを探して、解決するか、日常から解放する

画像







プログラマーとしてのキャリアを開始するすべての人は、長年開発者をサポートしてきた熱意を非常に持っています。 毎日、問題を解決するための新しい何か新しい方法、技術、さらには最小限の結果が、第7の天国に昇ります。 しかし時間が経つと、コードは「落ち着き」、以前は新しいものだったすべてのアクションがルーチンになります。 そのような場合、毎日新しいものを導入せずにモチベーションをサポートするには、喜びのために受容体を開発する必要があります。方法の1つは、結果の可視性を最大化するワークフローを編成することです。 カットの下でこれについて。







私について



私は5年の経験を持つPHP開発者です。私の実務では、Zend Frameworkから始まり、Symfony-Laravelエコシステム、Memcached-Redis、MySQL-Postgres、MongoDB、RabbitMQ-Gearmanなどで終わるさまざまなことを試してみました。 時間が経つにつれて、あなたを捕らえるテクノロジーのスタックは減り、それによって以前の知識の感覚への憧れが生まれます。 私のすべてのコードとワークフローは、実稼働環境でのFTPを介した自己記述サイトの編集から、有能な展開アプローチとコード分析へと変化しました。 私の経験では、最小限のアクションで最大のモチベーションを得ることができるもののリストを特定しました。







:以下の情報をソフトウェア組織の標準として受け取らないでください 。この情報は、エコシステムにおけるそのようなアプローチの研究の例としてのみ役立ちます。 特定の範囲のシステムには適用できないものもありますが、一般的な原則は同じです。







開発の利便性



これは整形外科用の椅子と数十台のモニターに関するものではありませんが(予算があれば傷つくことはほとんどありませんが)、非常にシンプルであると同時に重要な分野である開発ツールについてです。 プロジェクトに真剣に取り組んでいる場合は、できるだけ便利に作業環境を構成する必要があります。 理想的には、使用されるすべてのPLの構文とロジックだけでなく、より高いレベル(フレームワークと統合レベル)での分析と統合と分析を備えたIDEを使用します。 たとえば、PhpStormからSymfonyで開発する-Symfonyプラグイン+ PhpAnnotationsプラグインの寿命を大幅に簡素化します。 したがって、精神活動の一部はIDEに外部委託され、より深刻な作業のために脳を解放します。







コード分​​析とテスト



多くの開発者は純粋に機能的な開発に携わっていますが、実践が示すように、単体テストの基本的な範囲も同様に重要です。 これはかなり日常的なプロセスであり、モチベーションがゼロになる場合があります。 小規模に開始-アプリケーションのエンドパートをテストでカバーします。たとえば、サードパーティのApi、I / Oレベルでのシンプルなビジネスロジックなどを操作します。特定の場合に、すぐに確認することをお勧めします。 開発した製品の安定性と品質が向上しますが、これは大きなプラスです。







しかし、これから当然のドーパミンのシェアを得る方法は? カバレッジと静的コード分析を生成します。 出力レポートは、開発者(チーム)が常に利用できるように、テストサーバー(ステージングなど)に展開できます。 テストカバレッジプロセス全体を一種のゲームに変え、テストでカバーされるクラスを表示し、カバーする必要がある他のものを強調し、「これらのレベルに合格する」ことを刺激して、カバーされない機能のブロックを最小限に抑えます。 たとえば、ユニットテスト用のPHPプロジェクトの場合、通常はPhpUnitを使用します。runコマンドで--coverage-htmlパラメーターを追加できます(詳細なドキュメントについては--helpを参照することをお勧めします)。 次の製品は、PHPの静的コード分析に使用できます-phplint、phploc、phpcs、phpcpd、phpmd。







注意 :レポートをどこかに展開する場合は、外部の世界からレポートを隠すように注意してください。これは、侵害の原因となる可能性がある製品に関する情報の保管庫です。 アクションを実行する際の安全性を忘れないでください。







バージョン



どんなに平凡でも、バージョン管理システムを使用してください! サポートしているシステムがCRUDをはるかに超えているにも関わらず、これらが「特別な問題」である多くの開発者を知っています。 バージョン管理システムを使用すると、少なくともコードを最大限にバックアップできます。コードのローリング、比較、バージョン管理などを適切に制御できます。 これでドーパミンを作成する方法-ブランチの各機能を使用すると、コードを主流のタグに挿入するプロセスを視覚化でき、バージョンごとに生産を行い、バージョンごとの進捗を確認できます。 実際、これはさらに進んでいます。







組み立てと流通



たまたま人々はプログラムのコンパイルをアセンブリとして考えることに慣れており、この概念ではインタープリターが起動するシステムを省略していることに気づきました。 私たちの世紀、百万のPHPパッケージと十億のjsライブラリ、アセンブリの概念はもはや単なるコンパイラではなく、それを実行するために必要なシステム上のアクションの数は1ダースをはるかに超えているため、ルーチンアクションを自動化して特定のアプリケーションをデプロイするプロセスをスピードアップすることが重要です。 製品をビルドするアプリケーションは多数あります。PHPの場合、私はPhingを自分で選択しました。これは、コンポーザー経由で簡単にインストールでき、ビルドタスクを非常に便利な形式で記述できます(xmlですが、例を使用する初心者でも直感的です)。 これらの操作の目的は、製品のスキャンを「すべてをうまくやる」ボタンに減らすことです。







パッケージのプル、最新の構成の配信、移行の開始、テストの実行、キャッシュのウォームアップ-これはコレクターが実行できることのほんの一部です。 コードがどこにもデプロイされていない場合でも、将来、自動コレクターの存在により、新しいマシンでのプロジェクト開発の開始が大幅に簡素化され、デプロイメントとソフトウェアリリースが大幅に簡素化されます。 継続的インテグレーション(CI)システムとのペア-すべてのルーチンはマシンの肩に向かい、想像力と直接的な問題解決のためのスペースを提供します。 少なくとも、展開中に何かをするのを忘れる可能性は少なくなります。







これからドーパミンのドロップを絞る方法-製品の組み立てを自動化するバランスを見つけ、簡単なことから始めて、サンドボックスでも、最小限の時間で、それがどのように機能するかを試してみてください。 たとえば、PhingプラグインがインストールされているCIシステムとしてJenkinsを使用しています。 コレクターで「Invoke Phing Target」というアセンブリ手順を選択するだけで十分です。すべてがガラガラ音を立て、確実に組み立てられます。







一般的なプロセスの視覚化



システムに対するコントロール感は非常に高いため、使用する製品の最大数を視覚化してみてください。 サーバーのロードに関する統計から始めて、製品が動作するさまざまなソフトウェアを視覚化します。 たとえば、RabbitMQには、統計とキューの内容を表示するためのWebインターフェイスの形式の管理プラグインがあり、プロセスの最適な動作を制御するために、デバッグと実稼働で多くを助けます。







一般に、ニーズに合わせて調整できるログを視覚化するためのソフトウェアがたくさんあります。主な目標は、製品で何が起こっているかを最大限に視覚化することです(特に、多くのコンポーネントが互いに通信するサービス指向アーキテクチャ(SOA)に関連) 。 システムに関する情報は、何が起こっているかを迅速にデバッグする機能だけでなく、変化やダイナミクスを観察することによる道徳的な満足度も提供します。 すべての細い首がすぐに見え、システムのすべての最適でない部分はあなたの監督下にあります。







互換性



製品が1つのシステムのフレームワークを超える場合、各サブシステム(モジュール)のバージョンを保持し、互換性のあるバージョンのマップを作成して、リリースごとに更新することが非常に賢明な決定になります。 そのようなアプローチにより、彼らの機能に関する頭の情報、そこに追加されたバージョン、およびそれがすべての作業を中断するかどうかを知ることができます。 このようにして、コミットストーリーを掘るルーチンから自分自身や他の開発者を救い、すべてがそこにあるかどうかを判断できます。







おわりに



増え続ける情報があらゆる側面からあなたを迫っている、非常に多くの技術が存在する世界では、製品と思考の両方に柔軟性の余地があることが非常に重要です。 メインメッセージ-進行状況を視覚化し、Monkey-jobから自分を救うことができるものを探してください。そして、最も退屈なタスクでさえ、大きな喜びをもたらします。







おわりに



この投稿は主に、ワークフローを改善(または比較)したい初心者以上の開発者を対象としています。 提示されたすべての資料は純粋に私の経験から取られたもので、コメントがあれば、喜んでコメントを聞きます。








All Articles