ソフトウェアエンジニアの生産性:コーディング


This article was posted on my blog https://coder.today/software-engineer-productivity-coding-75fa21d3804. This is a revised version of it.


生産性のヒントは、コードの人々のための一般的な記事のシリーズです.ヒントは、任意の環境、フレームワーク、言語やプラットフォームに適用する必要があります.
この物語はマルチストリームシリーズに属する.
  • 生産性:符号化 — この記事

  • 私は怠惰です、しかし、私は我々が持っている最も貴重な通貨に気をつけます:時間⏰. それは私の効率を向上させるいくつかのヒントを共有したいと言われている.

    TLtr🕮
  • 自動化すべて
  • 学ぶ&ツールをカスタマイズ
  • ストアあなたのスニペット&その他のヒント

  • 自動コマンド🤖
    あなた自身を観察して、あなたが毎日何度もタイプするコマンドを見つけて、彼らを短くしてください、そして、必要ならば彼らをグループ化してください.Gitビジュアルクライアントのみを使用する場合は、基になるコマンドを学ぶ必要があります.
    ほとんどすべて.私は通常、重要なチェーンから手動で最後のコマンドをtest&&build&&copy&&upload 次に手動で配備します.

    Using aliases you will do fewer human mistakes, and deliver more. Eliminate the boring steps from your daily routines.


    カスタムエイリアスの欠点は、柔軟性と認知負荷です.エイリアスを意味するのは、1つの環境(唯一のあなたの仕事のラップトップ)であり、あなたはそれらを覚えている必要があります.
    私もgit auto complete またはフレームワークのようなbash-it , 彼らは通常いくつかのロジック(コマンド命名)で開発され、彼らは覚えやすいです.あなたの言語、フレームワーク、プラットフォーム用に構築されたbashのヘルパーを検索します.

    Not having to type the current git branch name saved me over 1M characters typed and using aliases I avoided many possible mistakes.


    エイリアスを使わないとしてもHEAD の代わりにmaster それは人間のエラーに以下のプルーンになりますgit pull origin HEAD の代わりにgit pull origin master .
    Windowsでもbashを使っても使えますGit bash from Git for Windows .
    bashのヒント:使用を学ぶbash history, especially CTRL+R .

    ツールのカスタマイズ🌂
    IDE、bash、その他のツールで作業するのに多くの時間を費やします.カスタマイズあなたのニーズと感情に基づいてツール.あなたは💙 そうでなければ、あなたの仕事は吸うでしょう.あなたが何かを憎んでいるならば、(現在、キーボード・ショートカット、表示色が不足しているように)それを変えてください、行ってください.

    I like to my bash to be cheerful, colored, and all my editors have black themes.



    カスタマイズ環境
    あなたの環境をあなたのために働かせなさい.最も基本的な例は、グローバルGitに追加することです.gitignore IDEファイルをファイルします.各プロジェクトの代わりに、マシンごとに1回だけ行うことで、時間を節約できます.
    #~/.gitignore
    .idea/
    .vs/
    
    オブザーバー、他のシステムの設定は、過去には、ファイアウォールのルールが問題だった?Pythonのバージョン?Unity 3 Dローカルキャッシュ?それを一度解決してください.

    ツールを学ぶ🏧
    あなたが新しい開発技術、新しいフレームワーク、パラダイムとデザインパターンを学ぶように、あなたはあなたのために設計されたツールを学ぶべきです.
    テキストエディタは、テキストを書くエディタのためです.なぜ?我々は時間を気にするので、我々はプロです、我々は我々の時間のために払われています.私たちのために設計されたより多くの組み込み機能を持っているので、IDEのは重いです.PS :コンパイラ/Git/linterの統合のようなプラグインを持つテキストエディタはIDEです.

    Improve your skills by stepping out of your comfort zone.


    あなたのIDEをアップグレードし、新しい機能を学ぶ、おそらくあなたのニーズに合うでしょう.しばらくの間、新しいIDEを検索すると、驚くかもしれません.
    大きな生産性を得るより多くのキーボードショートカットを使用して取得します.“展開の選択”は、例えば私は長年に沿って多くの時間を節約.他の例は、ライブテンプレートとマルチカーソルです.

    私が頻繁に使用する1つのライブテンプレートはIsDebugBuild {print("msg", var)} または試してみて/キャッチ式.
    あなたは時々いくつかのregexを置き換えることがありますが、時々マルチカーソルがより簡単で、より効率的です.

    マルチカーソルの良い十分なシナリオ:ハードコード化されたデータ、enums、テンプレートとほとんどすべての退屈です.
    私が見た最新の特徴IDE is a machine learning helper (Codota) . すべてのオープンソースコード、デザインパターン、および他のDEVSによって作られた間違いを知っている.

    あなたのdev envを自動化する🎰
    前回、私は新しい仕事を手に入れたので、大きなプロジェクトのためにフル稼働するdevのセットアップをするために数日かかった.それはこのようにする必要はありません、これらの種類の自動化のために設計されたツールがあります.Boxstarter (私はまだ使用していません)コードのスニペットから数分でWindows dev envをビルドできます.
    私はこれらの種類のためにDockerを使い始めました.簡単なCLI命令を使用すると、必要なツール/サービス/ソフトウェアのほとんどをインストールすることができます.コンパイル、パッケージやバイナリを検索する必要はありません.

    Example: a persistent mongo-db instance with a specific version and a visual administration tool.



    ではない🔨

    “To a man with a hammer, everything looks like a nail.”


    システムスクリプトが必要な場合はJavaScriptを使用しないでください.bashのビットを学び、同僚やスタックオーバーフローを尋ねます.CSS 3を学ぶ小さなブラウザアニメーションが必要な場合.あなたはポイントを得る.それはあなたにいくつかの余分な分かかりますが、それは巨大なゲートを開きます🚪 あなたの将来で.

    Most of the engineers have this problem. I used to make everything in PHP, CS graduates get stuck in Java or CPP. It’s human nature, the designers do the same mistake with Photoshop, the QA usually with a bug tracking software like Jira.
    The idea is to expand your tool set, baby steps, 1 small script at a time.



    *保存時に💾
    自動化することができますすべての“ファイルを保存する”アクション、私がアクティブにする最も一般的なことは“自動保存”形式です.

    Auto-format enables me to write quick & dirty code, I do not waste time on indentation, commas, semi colons or other beautification elements, that’s the IDE’s job.


    自動フォーマットも、実際にフォーマットを忘れて、Git闘争を引き起こすか、その後ばかなコミットを発生させるように、より多くの人間誤りを除きます.あなたとあなたの同僚は、より生産的になります.

    The IDE Is here to help you, let it do IT’s work


    あなたは、あなたのニーズに応じて保存する独自のミニパイプラインを作ることができます:コンパイル、エラーチェック、単体テスト、ホットプッシュコード(Web dev、js&css)、あなたはそれを名前.より多くの時間を消費するスクリプトのマニュアルトリガタスクを使用します.
    例えば、Go Iでは、「Run Test & Coverage on Cave」をアクティブにして、コンソールを開いて、効率を高めました.私はリファクターを恐れずに速く働くことができます、毎分、私はコードがすばらしいかどうかわかっています.

    藤堂🔖
    もっと使う//TODO's あなたのコードで.あなたの現在の流れをブレーキしないでください、隣接するものを解決することによって「地帯」を終了しないでください.あなたは小さなバンプをtodoを押すと、後でより良い、より大きな視点で戻ります.

    スニペット📚
    私の友人のいくつかのようにチャットでスニペットを格納しないでください、あなたが使用することができますGists または他の同様のサービス.あなた自身のレポ、Googleドライブのdoc、あなたはそれを命名します.アイデアは役に立つと証明する/達成するのは難しかったコードのスニペットを格納することです.それはあなたの時間、あなたの将来の時間を節約します.

    共有する
    我々は他の問題に以前の解決策を外挿することができます.もし同僚が問題を抱えていて、あなたが彼を助けようとしているのなら、将来的にはその答えを必要とする他の同僚がいるでしょう.ルールの親指として、1 nの永続的な通信チャンネルを使用して、共有は面倒です.
    プロジェクトが最小限のドキュメントを維持し、記事/記事を書いてください.あなたの内部のmeetupsを記録します.
    アイデアは、他のメールにアクセスすることができますので、電子メール/プライベートチャット、共有知識の問題を解決することです.

    It will save you time because you will not have to explain/solve the same problems twice.



    APIの呼び出しを自動化する📝
    あなたがAPIのもので働くならば、私はツールPostman . あなたが1つの場所であなたの呼び出しを保つならば、あなたは彼らを自動化することさえできます(連続配達パイプで)、あなたの同僚(コンフィグファイルとして)と彼らを共有して、レスポンス(JSON Schema Libで)を検証してください.私は、サーバーAPIソースコードと同じレポでテストを続けました.

    ありがとう🤝
    以下の投稿を改善できるよう、フィードバックを送ってください.

    その他の資源
    Productivity: workflow — behavior & environment tips
    The Joel Test: 12 Steps to Better Code