あなたはJSをより強力にすることができますか?


“ Do you know the most powerful thing about Javascript? Spoiler Alert, It is not asynchronicity, first-class citizen principles, not even my favorite, closures. While all of these make javascript a delight, what makes javascript powerful is not focusing on attaining power. Javascript is not power-hungry by design.”


そのバニラの形のJavaScriptは、空に触れている能力と海をジャンプする能力をあなたに提供するつもりでありません.それはパッケージと一緒に驚くほどのdevのコミュニティは、シーンにブレーク、暗い次元、人間のバッテリー、アークリアクターから力を持って、どこに他の場所を知っている場所です.
はい、大げさに.私があなたの注意を持っている今、このブログが設定することを目的とする展望に深く潜りましょう.JavaScriptのコア部分は、広く普及し、使用され、独自のではありません.それはまだそれを操作する喜びを奪わず、それはまだ技術的にJavaScriptです.
このブログは自分自身のタイトルに大きなイエスと答えてみます.JavaScript、モジュール、およびNPMにパブリッシングについて話す間、それは「公共のための建物」を確立するためにセットします.あなたがまだこのブログを読んでいるならば、私はあなたがNPMが何であるかについて精通していると思います.JavaScript(他の多くの言語のような)で働くことの刺激的な部分は、彼らが彼らのプロジェクトであなたの仕事を使うかもしれない方法であなたの仕事を他と共有する能力です.まず、独自のモジュールをNPMに公開するという基本的なことを始めましょう.

パイロット:手を汚して!


Writing a npm module からHarsh Joshi
それはかなり簡単だったかもしれない.あなたがそこに正しいものを見なければ、それを考え出したからです.)
楽しい方法を開始するには小さなとスマート思考することです.独自のモジュールを書き始める前に、よく読んだモジュールはJavaScript、特にpost ES 6で動作する方法です.あなたは見つけることができますhere .

エピソード2:コード異性体難問


コード異性体は、同じ仕事をするが、彼らが書かれる方法で異なる2つ以上のコードです.(はい、私はそれを作っただけですが、関連性はありません)

これが最も基本的な例です.多くのスタイルの開発者の使用を提供するコードを書くとき、パターンの形を取ります.一般的な使用のために意図されたモジュールを書くとき、はっきりしたパターンはそのモジュールを消費する人の頭痛を減らします.これらのパターンは、誰よりも、いつでもどこでも、言語よりも使用されているので、私は“公共のパターンのための建物”と呼ばれる目的に分類されます.

Have you ever come across a cool npm package, the intention of which gave you a tickle, but the implementation could not? When you installed the package you could not really understand what does what, there was no documentation readily available and you ultimately had to drop it? Yes, it does not happen when Facebook releases react.js or any organization releases a big package. But out there are many developers working on pretty cool stuff, some of which unfortunately fails to abide by the rather misty de facto standards of releasing to the public. These misty de facto standards are what we introduce here as building for public patterns.
There are two schools of thought on how to write code in any language. The first school of thought is that it should be written in a manner that is easily understood by the person who wrote it. The second school of thought is that it should be written in a fashion that is easily understood by the person who reads it.


思考の最初の学校は、しばしば“書き込み自己記述コード”という言葉にリンクされ、しばしば“あなたが知っているものを書く”または“あなたが必要なものを書く”と呼ばれる.いずれにせよ、それはプログラミングの非常に一般的な要因です、そして、プロジェクトが小さいとき、このようにコードを書く必要がしばしばあります、そして、コードを書く時間はそれを読む時間を上回ります.
思考の第二学校は少しだけ“我々は公共のパターンのための建物”として導入され、しばしば“きれいなコードを書く”という言葉にリンクされており、“何を知っている必要がある”と呼ばれるに近いです.他の人が読むコードを書くことも一般的です.他のプログラマーによって読まれるコードを書いているプログラマーは、それを読む人によって簡単に理解される方法でコードを書きます.コードがプログラムの非常に複雑な領域にあるとき、これは特に本当です.
「公共建築のための建物」はどこかでコードを消費する人に近い思考の新しい学校を紹介します、そして、実際のコードがどのように書かれるかについて気にかけません.JavaScriptでは、ES 6のポストの概念はかなりこの概念を標準化します.しかし、多くはまだ開発者に従うために残っている.これには、ハンドラの命名、エクスポート、モジュールの形成、および大いに多くが含まれます.さらに、モジュールのサイズを最適化することを含みます.そして、あなたの仕事を出版する「消費者第一」アプローチにより多くの重さを加えます.
ネイティブコンソールAPIの病気だと仮定して、コンソールを使用しないと約束しました.再びlog ().あなたの携帯電話にログを送信するために構築APIを使用して独自の関数を記述することを決めた.
const unConsoleLog = (data) => {
    fetch(API_URL, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'token': 'XXXX-XXX-XXX-XXXXX',
            },
            body: JSON.stringify(data),
        })
        .then(response => response.json())
        .then(data => {
            console.log('Success:', data);
        })
        .catch((error) => {
            console.error('Error:', error);
        });
}
アイデアは非常にエキサイティングなので、現在の公共の利用のためにアクセスできるようになります.NPMモジュールとしてこれをリリースすることにします.
あなたは公共のための“公共建築”を使用して、これを公開する最良の方法を考えることができますか?
完成する
次に“あなたはより強力なJSを作ることができますか?”
  • 「公共建築のパターン」における消費者第一原理
  • Es 6の前のJSと生命のカプセル化
  • オープンソースの「パブリックのために」
  • JavaScriptをあなたの最初のモジュールで強力にすること.(. js )