タグ

ブックマーク / www.yunabe.jp (3)

  • ターミナルにプログレスバーを表示する方法 | yunabe.jp

    ターミナルに用意されている特殊な制御コード (エスケープシーケンス)を使用して、 Python, Ruby, C++, Javaなど言語に関係なく簡単にターミナルにプログレスバーを表示することができます。 仕組み プログレスバーが更新されるたびに新しい行が表示されるのを防ぐために、 プログレスバーを表示する前にカーソルを行頭に戻して行の内容を消してしまえればプログレスバーの完成です。 カーソルの制御と行の削除には キャリッジ・リターン (carriage return) ターミナルのエスケープシーケンス を利用します。 の2つを利用します。 キャリッジ・リターンは Windows の改行文字 \r\n で出てくる \r です。 普段 \n に余計についてくる邪魔な文字程度の認識しかないと思いますが、単体で利用するとカーソルの位置を行頭に移動します。 移動した後文字を出力するとすでに表示され

  • なぜGo言語 (golang) はよい言語なのか・Goでプログラムを書くべき理由 | yunabe.jp

    結論としてはGo言語には以下のようないくつかの長所があり、現実路線で非常にバランスがとれた言語だと思います。 これらの長所のために失われたメリットも当然いくつもありますが、一定程度以上の規模のプロジェクトで利用する言語の選択肢としては現存するプログラミング言語の中では一番か二番目によいのではないかと思います。 コンパイルが速い (vs. C++) GCとメモリ安全性 (vs. C++) 妥当で現実的なレベルの型安全性 (vs. Python/Ruby) 実行時パフォーマンスが良さ (vs. Python/Ruby) 現実問題、ある程度の規模と期間のプロジェクトになると型検証があるとリファクタリングなどがだいぶ楽になるのでありがたい。 型があるので自然と実行時パフォーマンスも良い 標準ライブラリが整備されている (vs. C++) むしろ標準ライブラリにjsonのparserすら存在しないC

  • Google流 JavaScript におけるクラス定義の実現方法

    目次 2019年追記 はじめに クラス実現のために必要な JavaScript の言語仕様 function this call new 演算子 prototype チェーン プロパティ: prototype Google Closure 流のクラスの実現方法の概要 クラスの宣言とコンストラクタの定義 メンバ変数 (インスタンス変数) メソッド定義と呼び出し private, protected 継承 プロトタイプチェーンを利用してメソッドを親クラスから引き継ぐ 親クラスのコンストラクタの呼び出し メソッドオーバーライドと親クラスのメソッドの呼び出し 多重継承 abstract, interface inherits の実際のコード 良くないクラス実現方法 ES6 のクラス 2019年追記 この記事ではclassが導入されたES6以前のJavaScriptでどのようにクラスに相当するものを

  • 1