ある仕事でそれまでRubyで書かれていたサーバーサイドをGo言語ですべて書き直すことになって、それまでRubyのコードを書いていた僕はそのままGo言語を書くことになった。その仕事そのものはお客様(僕は外部委託のエンジニアとして参画していた)との関係も良好で素晴らしい仕事をさせてもらうことができたと思っているが、Go言語だけは好きになれなかった。 はじめは流行っている言語だから何か素晴らしい魅力があるのではないかと期待していた。しかし書き始めるうちにどうも自分には合わないなと思うようになり、2年ほど書いて案件の契約が終わる頃にはGo言語でサーバーサイドを書くことは危険だとさえ思うようになった。 あれから数年がたちますますGo言語の案件は増えている。サーバーサイドを書く選択肢としてGo言語を選択する会社も増えている。しかし本当にそれでいいのか?ただ流行っているからという理由だけで選択するにはあ
node.js でコードを書いている時にハマった 循環参照 という問題とその対処法について紹介します。 この問題は circular dependency, cyclic dependency とも呼ばれます。これはどういう問題かというと、 あるファイルを require したときにその結果が空のオブジェクトとして返される問題 です。 この問題に直面した時はなんでこうなるのか全く理解できなかったのですが、よくよくコードを見てみると、あるファイルとあるファイルがお互いにrequireし合っていることに気づき、色々調べてみるとこういう問題があることがわかりました。 以下にこの問題を再現させるサンプルコードを示します。 // a.js "use strict"; var B = require('./b'); module.exports = (function() { var id, bIns
stokpic / Pixabay javascriptを書いていて、requireの書き方で、ちょっとハマったのでメモ。 次のような要件を実装していくとします。 子要素を生成することができるclass Person{}をつくる。 要素を生成する機能は、class外に別途factory()メソッドを用意する。 Personにはchild()関数があり、factory()を実行して、子要素を作れる。 この仕組みを1ファイルですべて記述すると成功するのだけど、 ファイルを分割して、双方の関数をお互いがrequireしあうようにすると、 書き方によっては、そんな関数無いですよ!?と怒られます。 TypeError: factory is not a function では。そのコードを紹介します。 動かないコード factory.js const {Person} = require("./Pe
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く