弥生研究所

人は誰しもが生きることの専門家である

programming

プログラミングとITに関すること

作り逃げを断罪する気にはなれない

最近は、私も技術者としての経験値が増えてきたせいか、あるいは単に年を重ねたせいなのか、システム開発に関しては、どこか諦めのような感覚も強まってきていて、正義を振りかざすシステム開発論に、反応することが少なくなってきました。良いシステムを作…

【SCSS】Mixin と Extend の違いと使い分け

SCSS ではソースコードを共通化する機能として、mixin(include) と、extend が用意されています。 比較的単純な共通化であれば、mixin も extend も同じ役割を担うことができるため、機能的な違いだけで mixin と extend を使い分けることが難しい場合があり…

Raspberry Pi で運用する Raspbian の初期設定

しばらく使わないとすぐ忘れる人(→私)のための備忘録です。 目的 インストール Raspbian をダウンロード SD カードにイメージを書き込む Raspberry Pi を起動 初期設定 各ユーザーのパスワードを変更 タイムゾーンを変更する 目的 閉じた LAN 環境の中でサ…

Sass の開発環境を作成する

いろいろあるスタイルシート言語 LESS Sass SCSS SASS Sass は SCSS と SASS の両方の概念を含んでいるので注意が必要です(ややこしい)。SCSS と SASS は別のスタイルシート言語なのではなく、Sass が SCSS と SASS という二種類の構文を持っています。つ…

node.js をインストールする

node.js は Javascript の実行環境です。Javascript といえば、一昔前まではブラウザ上で動作するものでしたが、node.js の出現によってブラウザ以外の(例えばサーバサイド)環境で Javascript を実行できるようになりました。いまや、フロントエンドの開発…

【Javascript】スコープ

スコープは変数の有効範囲を意味する概念です。 グローバル変数 関数の外で宣言された変数は、ソースコード全体からアクセス可能です。 var scope = 'global'; function f() { console.log(scope); } f(); // global と表示される ローカル変数 関数の中で宣…

【Javascript】アロー関数

アロー関数は、Javascript における関数の一つです。 通常の function 式による関数の代替構文やシンタックスシュガーの側面を持ちますが、アロー関数と通常の関数では振る舞いが違うため、アロー関数と通常の関数は常に交換可能ではありません。 基本構文 c…

【Javascript】npm install での dependencies と devDependencies の違い

npm を使うときに、まず初めに知っておいたほうが良い概念が、インストールするパッケージの保存場所についてです。 保存場所 dependencies devDependencies グローバル 厳密には他にもあるのですが、まず上記の3種類の概念が重要です。 グローバル npm inst…

【Javascript】this について

Javascript の this について説明します。 私は、長らく Java を使ってきたので、Javascript の this の概念には戸惑いました。this を理解する手助けになればと思います。 基本(メソッドの呼び出し) あるオブジェクトのメソッドを呼び出したとき、そのオ…

【Javascript】関数とメソッドの違い

Javascript には関数という概念と、メソッドという概念が両方存在しています。 結論 結論から先に言うと、Javascript には、まず関数という概念があり、関数をオブジェクトのプロパティに代入したとき、関数はオブジェクトのメソッドになります。 関数とメソ…

【Javascript】繰り返し処理のまとめ

ECMAScript 5 で追加されたものを一覧化しました。 forEach() Pros Cons map() Pros Cons filter() Pros Cons every(), some() Pros Cons reduce(), reduceRight() indexOf(), lastIndexOf() forEach() for 文の場合: // 要素の合計を求める const array = …

scala の implicit に対する防御策

paulownia.hatenablog.com 上記の記事は、示唆に富んだとてもよい記事で、同時に私と同じ疑問を持っていて、ひとつの道筋を提示してくれている。 どうやら、scala 界において、implicit に対する知識が私と同程度の人は多いとお見受けいたした。 ちなみに、…

コードの共通化に対して考えること

趣旨 何も考えていないのであれば、まずコードは共通化させずに冗長に書こう。 背景 やめた方が良いコーディング・設計、アンチパターン にて、共通化、抽象化について言及されていた。 内容は非常に納得するものであった。 論旨は、"何も考えずに"共通化、…