思考の引き出しを増やすモジュール設計のヒント
A common question developers new to Go have is “How do I organize my Go project?”, in terms of the layout of files and folders. The goal of this document is to provide some guidelines that will help answer this question. To make the most of this document, make sure you’re familiar with the basics of Go modules by reading the tutorial and managing module source. Go projects can include packages, co
概要 名前付け 抽象度 インフラアーキテクチャ図 チーム 認証情報 変更(デプロイ)のライフサイクル DRYの誤用 コードの検索性 モジュール間の依存 アプリケーションレイヤーとの違い まとめ 概要 TerraformのStateやModuleに関する設計に関する考慮点をざっくり書く 名前付け ユビキタス言語とディレクトリ名や変数名を合わせて認知負荷を下げる リソース名でなく役割・機能ベースのディレクトリ名にして認知負荷を下げる プロダクトのコードネームはユビキタス言語なのでディレクトリ名にしても問題ない ModuleやStateのREADME.mdを書く https://github.com/terraform-docs/terraform-docs を使う うまく説明が書けない場合は設計に問題がある可能性がある チームメンバーが利用できるように考慮する いつどのようなときに使えばいいか
2023-01-10 以下の記事を教えてもらい、比較的簡単に ssh にワンタイムパスワード認証を追加できるようだったので CentOS 8 でも試してみました。 Raspberry Pi の場合と異なり、SELinux による制御を考慮する必要があったので、それを踏まえて設定しました。 Setting up two-factor authentication on your Raspberry Pi - Raspberry Pi https://www.raspberrypi.org/blog/setting-up-two-factor-authentication-on-your-raspberry-pi/ 設定方針 Google Authenticator PAM module の設定 sshd の設定 接続テスト 付録 A: 認証コードが正しいのにログインできない 設定ファイルの確
"CSS Module" が指すもの 2つある 従来のコミュニティベースのもの これのこと。そしてその実装。 現状フロントエンドエンジニアが指すものはだいたいこれ。 Web 標準になりつつあるもの Import Assertions で実現しそうな Synthetic Module としての CSS Module 標準になりそうな所まで来ている。 この2つに関して話がごちゃごちゃになるんで整理する。 コミュニティベースの CSS Module https://github.com/css-modules/css-modules コレ自体は概念的なもの。 その実装 として Webpack の CSS Loader などがある。 なので、一般的に「CSS Module か Styled Component か」みたいな議論ででてくるものの場合、 Webpack の CSS Loader を入れ
皆さんこんにちは。早速ですが、TypeScriptのmoduleオプションはご存じでしょうか。moduleオプションは、例えば次のような値をサポートしています。 commonjs umd es2015 esnext node16 nodenext 皆さんは、moduleオプションが何を設定するオプションなのか一言で説明できますか? 実は、TypeScriptの熟練者であってもmoduleオプションを一言で説明することは難しいはずです。なぜなら、そもそもこのmoduleオプションが複数の異なる意味で使われており、もはや一言で説明できるようなものではなくなってしまったからです。 この記事では、TypeScriptのメンテナーが書いた次のGitHub issueをベースに、moduleオプションを取り巻く状況を説明します。 moduleオプションの意味とは 昔はmoduleオプションの意味は明確
Module Federation(以下 mfe)は webpack@5 から入る新しい仕組みの一つです。 Proposal Merge Proposal: Module federation and code sharing between bundles. Many builds act as one · Issue #10352 · webpack/webpack This is a proposal to merge my existing work into the Webpack core. The base concept is federated ap... 目的 アプリケーションを作る時に、webpack はビルド時のソースコードは使う前提で実行するので、様々な最適化を行うことができます。 もし、node_modules 経由以外でライブラリを使うという場合は scrip
「Terraform Module Designs 思考の引き出しを増やすモジュール設計のヒント」がめちゃ良い 「Terraform Module Designs 思考の引き出しを増やすモジュール設計のヒント」という Speaker Deck のスライドを見ていた。 Terraform Module Designs - Speaker Deck Terraform という IaC ツールに関するスライドなのだが、この中で出てくる数々の言葉は、システム設計、プログラマの美徳、組織作りやプロジェクトマネジメント、仕事術などに通じる内容が豊富に含まれていたので、自分が特に感銘を受けたモノを以下に引用させていただく。 限りなくシンプルなデザインというのはなかなか教えられるものではなく、大方経験を重ねて覚えるものだ - Evan Priestley この「判断力」は、プログラマーにとって非常に重要な
現在 TC39 の 3 月のミーティングのアジェンダが GitHub にて公開されている(Link)。 それによると、Module Frangments という新しいプロポーザルが@littledan氏によって提案される予定だ。 この記事では、現在の Module Frangments の概要とモチベーション、構文について解説する。もしさらなる詳細に興味がある場合は https://github.com/littledan/proposal-module-fragments を読んでほしい。 また、Module Fragments は現在 Stage 0 の提案であり、今後仕様が大きく変わっていくことが予想されるのでその点には注意してほしい。 概要 Module Fragments はインラインで JavaScript のモジュールを定義するための構文を導入する提案である。詳細は後述するが
Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang 1 Introduction 1.1 Authorship 1.2 Acknowledgements 1.3 What Is A Kernel Module? 1.4 Kernel module package 1.5 What Modules are in my Kernel? 1.6 Is there a need to download and compile the kernel? 1.7 Before We Begin 2 Headers 3 Examples 4 Hello World 4.1 The Simplest Module 4.2 Hello and Goodbye 4.3 The __init and __exit Mac
今回は中身がどう動いているかを解説したいと思います。 最初のこの記事では、最低限の実装を説明していくことにします。 webpack のアルゴリズムの仕組みはこちらを読んでください。 必要なステップ 必要なステップは以下の 3 つです。 エントリーポイントからのすべてのモジュールを走査し、requireを解決後にユニーク id を付与していく コード内のモジュールパス(requireの引数(e.g. ./module.js))を id へ置換する runtime のコードテンプレートの作成 IIFE(即時関数)箇所とそれに付随する引数の module 群 この実装されあれば、動くコードはできます。(2 つめは optional でもいいけど後からつらくなる) モジュール解決 今回は説明しやすいように関数を 2 つに分けています。 すべてのモジュールの把握と ID 作成 コード内の requi
概要 内部挙動 ELFバイナリの準備 .go.buildinfo section Goのバージョン module情報 ldflagsについて Goのソースコード .go.buildinfo マジックバイト Goのバージョン情報へのポインタ module情報へのポインタ EXEファイルの処理 余談 まとめ 概要 Goでビルドしたバイナリは色々な情報を含んでいます。例えばビルドに使用したGoのバージョンを取得できます。 $ go version ./test ./test: go1.15.2 そしてついこの間知ったのですが、 -m オプションを使うことで利用しているmoduleの情報も取得可能です。 $ go version -m /usr/local/bin/terraform /usr/local/bin/terraform: go1.14.9 path github.com/hashic
3月にWaveShareのCM4向けのIOボード「CM4-NANO-A」を買ってレビューしました。 akkiesoft.hatenablog.jp これを書いたわりとすぐ後に「CM4-NANO-B」が登場して、LANポート・HDMIポート・DSIポート・3.5mmオーディオが追加されたフル仕様だったので、大変悔しい思いをしつつ我慢していましたが、ついに我慢しきれずにポチってしまいました……! さっそくAとBを並べて比較するとこんな感じ。 GPIOはAと同じく、ピンヘッダーが付属していて任意で取り付けになっていますが、今回は実装せずに使うつもりです。 ポート類は上下左右全部から出ていますが、ヘッドレスで最低限必要になる電源・SD・LANが下側にまとまっているのは、ケーブルの取り回しの観点から大変ポイントが高いと感じました。次いで必要になりそうなUSB・HDMIは上側に実装されています。HDM
このフロントエンドの魔境に生まれたからには一度は俺が考えた最強の module bundler を作りたい。みんなそう思ってると思う。作った。 mizchi/bundler: hobby bundler tldr このコードが // foo.js export default 1; // index.js import foo from "./foo.js"; console.log(foo); export const index = 1; こうなる // @mizchi/bundler generate const _$_exported = {}; const _$_import = (id) => _$_exported[id] || _$_modules[id]((_$_exported[id] = {})); const _$_modules = { "/foo.js": (_
記載日:2023/02/05 pythonのclassやmoduleについて、自分なりに考えてみました。 そんなに知見があるわけではないのですが、実際のコードを書いてみて感じたことを記載します。同じ疑問を感じた方にとって、少しでも疑問解消の助けになればと思います。 流れ 以降では、以下のように進めていきます。 ・まず、classとmoduleのそれぞれで同じ機能を書いてみる。 ・次に、それぞれを比較して分かることを考えてみる。 結論を書くと、それぞれに良いところがありました。使う状況によって使い分けていくことになりそうです。 ・moduleのメリット module(__init__.py)のコード量が少なく、Main.pyでの呼び出しもシンプル(インスタンスを作ってない) ・classのメリット classではインスタンスを作ることで、複雑な機能をMain->classへ委任(委譲)できる
はじめに Terraformを使って複数の環境を扱う代表的な方法として、環境ごとにディレクトリを分けつつ、そこから共通のmoduleを呼び出すというものがあります。 本記事ではこれとは異なり、moduleを使わずに複数の環境を取り扱うファイル構成例と、運用して感じている利点について紹介します。 なお、Terraformで取り扱う対象としてAWSを前提とした記述が各所に登場します。ご了承ください。 動作環境 Terraform v1.5.3 AWS Provider v5.9.0 moduleを使って複数環境を扱うファイル構成例 moduleを使わない構成を紹介する前に、まずmoduleを使う構成例を簡単に解説します。 ファイル構成は概ね以下の通りになるかと思います。 -- <project-name>/ -- envs/ -- dev/ -- backend.tf -- providers
Module Harmony とは 現在 TC39 で多くのモジュール機能を追加する提案が進行しています。かつてはそれぞれの提案が無秩序に進行していましたが、2023年5月に Module Harmony として整理されました。この記事ではそれら提案についてまとめようと思います。 モジュール提案仕様の依存関係 インポートフェーズ修飾子 モジュールの読み込みがフェーズに分けられ、それぞれに対して修飾子が提案されています。シンタックスとしては import の後ろに修飾子を付けます。 import <Modifier> <ImportBinding> from <ModuleSpecifier>; import.<Modifier>(<AssignmentExpression>); モジュールの各フェーズと修飾子の対応 アセット参照 URL やパス解決のみをするのがアセット参照です。Asset
Turing Piは、Raspberry Pi 4 Compute Module(CM4)対応の4ノードクラスター「Turing Pi 2」を2022年1月に発売する予定だ。価格はおよそ200ドル(約2万2700円)で、SO-DIMMスロットに差し込むために必要なCM4用アダプターが10ドル(約1100円)になるという。 Turing Pi 2は、最大4枚のCM4をMini-ITXサイズに集約できるクラスター。Raspberry Pi Compute Module 1/3/3+対応の7ノードクラスター「Turing Pi 1」から、CM4、NVIDIA Jetson Nano/TX2 NX/Xavier NXへと対応モデルを増やしている。外部ストレージや5モデム、LoRaWANゲートウェイといった拡張ボードと接続できるなど拡張性とモジュール性を考慮しており、今後出てくる新たなコンピュートモ
It’s become a tradition that we follow each Raspberry Pi model with a system-on-module variant based on the same core silicon. Raspberry Pi 1 gave rise to the original Compute Module in 2014; Raspberry Pi 3 and 3+ were followed by Compute Module 3 and 3+ in 2017 and 2019 respectively. Only Raspberry Pi 2, our shortest-lived flagship product at just thirteen months, escaped the Compute Module treat
コードホスティングサービスであるSourceHutが、Gitサーバーからコードを取得しキャッシュするプロキシの「Go Module Mirror」がネットワーク帯域を使いすぎているという理由で2023年2月24日からブロックする予定であることを発表しました。 SourceHut will blacklist the Go module mirror https://SourceHut.org/blog/2023-01-09-gomodulemirror/ SourceHut to shun Google's Go Module Mirror over greed • The Register https://www.theregister.com/2023/01/10/googles_go_SourceHut/ Googleが開発したプログラミング言語のGoはGitリポジトリからモジュール
This is the story of the time I wrote some code, deployed it to production, and ended up bricking the server it was running on by frying the kernel. Beautiful rendition of me frying the kernel This post is about perils of concurrency and race conditions. My code was nearly correct, but ultimately, there were two major synchronization bugs that killed it. This is a really long post that gets into t
That headline is a mouth-full, I know! In the past several years I have been working on distributed and multiple teams as well as being a pretty early adopter of NextJS (since around V2.0!) in production. I’ve worked on micro frontends with shared npm packages while trying to orchestrate one cohesive user experience. It was and is hard. That’s why I have been closely following the latest developme
前書き Terraformの機能の中でもmoduleはworkspace(旧environment)と並んで評価が分かれる1つだと思います。 僕自身も複数の人からmoduleに否定的な意見を聞いたことがあり、実際にmoduleを使い始めた頃はあまり便利だとは感じませんでした。 しかし、公式サイトのmoduleのページ12を読んでいくうちに間違ったmoduleの使い方をしてしまっているケースが多いこと、そういったアンチパターンを実行した/目にした結果moduleが使えない・実用的ではないといった誤解を招いているケースが数多くあることに気づきました。そういったアンチパターンにならないよう気を配り数ヶ月moduleを使ってみると、moduleはとても便利で汎用性の高い機能であることに気づきます。 モジュール機能の有用性をもっと世のterraformerに知ってほしいと思ったため、このページでは公
自己紹介 はじめまして、ENECHANGEの@rubita_isi です。 普段はWEBアプリケーションのバックエンドやインフラの開発や運用を担当しています。 この記事では、AWS上に構築された膨大なWEBアプリケーションをElasticBeanstalkからECSに移行する際に、 監視をTerraform Moduleで標準化した件について、その背景や具体的な内容についてお話しします。 ECS移行について ElasticBeanstalkからECSへの移行 ENECHANGEでは、WEBアプリケーションをAWSのElasticBeanstalkで運用していました。 しかし、ElasticBeanstalkを利用する場合、ホストOSやアプリケーション言語のバージョンが頻繁にサポート終了を迎え、その度に対応が必要でした。 また、ebextensionやplatform hookの仕組み・仕様
英国Raspberry Pi財団は、「Raspberry Pi 4 Model B(以下、ラズパイ4)」の組み込みモジュール版となる「Raspberry Pi Compute Module 4」を発表。Armの「Cortex-A72」を4コア搭載する「BCM2711」はそのままに、RAMやフラッシュストレージの容量、無線通信機能の有無などによって変わる32品種を用意した。価格は25~90米ドル。 英国Raspberry Pi財団は2020年10月19日(現地時間)、「Raspberry Pi 4 Model B(以下、ラズパイ4)」の組み込みモジュール版となる「Raspberry Pi Compute Module 4」を開発したと発表した。Armの「Cortex-A72」を4コア搭載する「BCM2711」はそのままに、RAMやフラッシュストレージの容量、無線通信機能の有無などによって変わ
このエントリーはCyberAgent Developers Advent Calendar 2021 の17日目の記事です。 マッチングアプリ「タップル」のiOS開発を担当している永野です。 本記事では、2019年からタップルで導入されているFeature Module開発について、導入の背景から現行の運用まで紹介します。 Feature Module開発を採用した背景 タップルのiOSアプリケーションは2014年5月にリリースされてから今年で8年目をむかえるプロダクトです。 運用・開発を重ねるにつれて、コード量が多くビルド時間が問題となっていました。特に大型の機能開発では画面を一から作り直す機会が多く、開発速度の大きなボトルネックになっていました。機能開発のイテレーションが高速化され、並列で開発しながらも、開発速度を保つために機能間の依存関係を疎結合にしたいというモチベーションから、Fe
Using CSS Module Scripts to import stylesheets Stay organized with collections Save and categorize content based on your preferences. Learn how to use CSS module scripts to import CSS stylesheets using the same syntax as JavaScript modules. With the new CSS module scripts feature, you can load CSS style sheets with import statements, just like JavaScript modules. The style sheets can then be appli
本記事は、TechFeed Experts Night#31 〜 フロントエンドアーキテクチャの現状と未来のセッション書き起こし記事になります。 イベントページのタイムテーブルから、その他のセッションに関する記事もお読み頂けますので、一度アクセスしてみてください。 本セッションの登壇者 セッション動画 「Module Harmonyについて」ということで発表を始めさせていただきます。「フロントエンドアーキテクチャーの現状と未来」というイベントタイトルからは少し外れますが、モジュールと言われるJavaScriptの1つの仕様の中で、こういうことが起きてるんだよという、少し角度を変えた話をさせていただければと思います。
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く