https://yojo.connpass.com/event/294169/ のイベントの登壇資料です。 React のコンポーネント指向開発について、いくつかの誤解があります。(またはかつてありました。)これらの誤解を解きながら、「一つのコンポーネントが複雑で長大になる」「多くのコードジャンプを要して、全体像をつかみにくい」状況に陥らないためのコツを「Container コンポーネント」に着目して解説します。
![まず Container より始めよ](https://cdn-ak-scissors.b.st-hatena.com/image/square/8f61d6f58a72ed5802d709bbc22be6626236ba0f/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fb0a666fb8d9c4fef83d360591335ba52%2Fslide_0.jpg%3F27138466)
www.oreilly.com オライリー・メディアのコンテンツ戦略部門のバイスプレジデントであるマイク・ルキダスの文章だが、彼が数週間前、「コードを書くことが問題なのではない。複雑さをコントロールすることが問題なのだ」というツイートを見かけた話から始まる。彼はこれに感心したようで、これから何度も引用すると思うので、誰のツイートか思い出せればいいのにと書いている(ご存じの方は彼にご一報を)。 件のツイートは、プログラミング言語の構文の詳細や API が持つ多くの関数を覚えることは重要じゃなくて、解決しようとしている問題の複雑さを理解し、管理することこそが重要だと言ってるわけですね。 これは皆、覚えがある話だろう。アプリケーションやツールの多くは、最初はシンプルである。しかも、それでやりたいことの80%、いやもしかしたら90%をやれている。でも、それじゃ十分ではないと、バージョン1.1でいく
みなさんは『攻殻機動隊』と聞いてどれを思い浮かべるでしょうか。押井守の最初の劇場版でしょうか、それとも神山健治のSACシリーズでしょうか。ハリウッドの実写版を思い出す方もおられるかもしれません。 しかしながら、私にとっての”攻殻”は士郎正宗による漫画『攻殻機動隊』なのです。はじめてこの漫画を読んだときは、世にこれほどまでに面白い漫画が存在するのかと震えました。未だに私にとっての漫画の最高傑作です。しかし、この原作漫画はアニメシリーズと比較して、残念ながら知名度が高いとはいえません。 その理由の一つに、非常に難解なストーリー展開があると思います。一読しただけでは物語の把握は困難で、注釈が無数にあって、そして理解を読者に求めます。 この作品は、画に描いてあることを解説してくれない漫画なのです。読者は画とセリフから能動的に意味を読み取り、物語を自分で組み立てなければなりません。 もちろんそういっ
はじめに 今回の記事では、ソフトウェアアーキテクチャの入門的な内容を解説する。 対象とする読者 ソフトウェアアーキテクチャを勉強するエンジニア アーキテクチャに関して全くわからない初心者 タイトルで気になったひと ソフトウェアアーキテクチャとは? ソフトウェアのアーキテクチャは、システムの主要なコンポーネント、それらの関係(構造)、およびそれらがどのように相互作用するかを記述する。ソフトウェアのアーキテクチャとデザインには、品質属性、人間のダイナミクス、デザイン、IT環境など、多種多様な寄与要因が含まれる。アーキテクチャは、品質、保守性、パフォーマンス等のような全体的な成功に影響を与える重要な決定を含む。 ソフトウェアアーキテクチャの主な目的は、アプリケーションの構造に影響を与える要件を特定することだ。良好なアーキテクチャは、技術的な解決策を構築する際のビジネスリスクを削減し、ビジネス要件
はじめに この記事はHow to Learn Software Design and Architecture | The Full-stack Software Design & Architecture Mapを翻訳したものです。 翻訳がおかしい箇所などあればご指摘頂けるとありがたいです。 元記事の著者: Khalil Stemmler(@stemmlerjs) 設計、アーキテクチャ、フロントエンド、ブロックチェーンに興味ある方是非Twitter(@show_clements)フォローしていただけると嬉しいです! 設計に関する記事 ソフトウェアデザインとアーキテクチャは、DevOpsやUXデザインのように、コンピューティングの領域の中でも独自の研究分野となっています。ここでは、クリーンコードからマイクロカーネルまで、ソフトウェアデザインとアーキテクチャの幅広さを説明するマップを紹介しま
23/9/21追記:この記事を読む前に ついにGoチームから、プロジェクト構成に関するガイドが公開されました! 本記事を読んでくださることも大変嬉しいですが、ぜひこちらのガイドもご一読ください! この記事は何 Go言語を書いたことがある方も、興味はあるけど触ったことがない方もこんにちは。 Goに限った話ではないと思いますが、ガリガリコードを書いていて、あるタイミングで気になるのがプロジェクト構成(ここではディレクトリ構成の意図)ではないでしょうか? それを裏付けるかのように、Go界隈では以下のリポジトリが話題に上がることがあります。Star数すごいですね😇 リポジトリ名から公式感が漂いますが、そういう訳ではないのがミソです。 こちらのリポジトリ冒頭にも記載されていますが、次の点に留意する必要があるでしょう。 これは、Goアプリケーションプロジェクトの基本的なレイアウトです。これは、コアと
会社概要 モノづくりに携わるすべての人が、本来持っている力を最大限に発揮できる社会を実現する。そのために私たちは、産業の常識を変える「新たな仕組み」をつくります。 詳細
こんにちは。株式会社InnoScouter CTOの大西(Twitter: @monarisa_masa)です。 InnoScouterでは、開発手法として、スクラム開発に取り組んでいます。 今回は、「なんちゃってスクラム」に気づくためのコツ、というトピックで話していきたいと思います。 自分自身数年にわたり、他社の方から「スクラム開発やってる?」と聞かれたときに、「なんちゃってスクラムですかねぇ」と言い続けてきました。長らく「なんちゃって」状態だったのですが、最近個人的にそれを脱するタイミングを味わったので、その話をさせてください。 ※ そもそもスクラム開発をよく知らないという方にもわかるように、適宜スクラム開発自体の説明もしていきます。 この記事の対象読者 現在進行形で、スクラム開発をやっているが、なんか違いそうと感じている方 (前職などで)1度スクラム開発をやった経験はあるが、いまいち
最小限のコードで動く最も汚いコードから始める 2023.09.02 コードを書く際の重要な要点は、読みやすく他人に理解される「良いコード」を書くことです。しかし、完璧を目指して最初から書こうとすると行き詰まります。代わりに、荒削りながらも動くコードを作成し、徐々にリファクタリングして完成度を高めます。型エラーやリントエラーを無視しても構わないので、まずは動くものを作成しましょう。それからリファクタリングして「良いコード」を作成できます。 コードを書くときに最も大切なことってなんだろう?聡明な読者諸君ならご存知だろうが、コードは書く時間よりも読む時間のほうが長い。だから他人に読まれることを意識して、読みやすい「良いコード」を書かなくっちゃならない。コンポーネントは適切な粒度で分割されていて、適切な名前がつけられている。型システムに安全性だって守られてるし、最新のなんとかアーキテクチャにも準拠
2 月から、Mackerel チームの所属になった。 今日から異動して Mackerel チームです。非正規ルートでの要望でもいい感じにやるので何でもください!— Takafumi ONAKA (@onk) February 1, 2023 これを期に、せっかくなのでコードを読まないマネジメントスタイルを試してみようと思って、実践している。 今までは自分が一番プロダクトのコードベースに詳しい状態を作ってきていて、障害対応でも嬉々として先頭に立つようなテックリードスタイルだった。 この姿が天職と思っているが、今までの人生で、コードの細かい話が通じない (というか、共通言語や会話のレイヤーが違う) けれども非常に信頼できるマネージャーと仕事をしてきた経験はあるので、自分も彼らのようなムーブが可能なんだろうかとやってみたくなったのだ。知識欲が減衰した老害化現象ではないと思う。きっと、たぶん。 も
会社で部署異動になって5ヶ月超が経った。経験のない業務分野で係長クラスになっている。 今まで会社勤めをしていて、業務内容に特にこだわりもなく、それなりにやれてきたから、まあ大丈夫かと思っていたけど、あまり大丈夫じゃなかった。結構つらかったし、割と嫌な気分になっていた。(今は割と大丈夫。) どの辺が辛かったかとかメモに残しておこうと思って。 異動前 大手メーカーに新卒で入社して15年ほど勤めている。 前の職場(比較的製造現場に近い技術系職場)では、4年ほど担当者として働いた後、係長ポジションになって4年ほど働いた(係のメンバーは10名弱)。 異動 同じ事業部門の中で別の課に異動した。異動先の課の業務内容は、漠然とした理解しかなかった。 30名程度の課で、25名の係の係長をしろとのことだった。もともと課の管掌範囲が広いこともあり、十分にマネジメントが機能しておらず、その辺りを助けてほしいみたい
こんにちは、株式会社ラクスで先行技術検証や、ビジネス部門に技術情報を提供する取り組みを行っている技術推進課に所属している鈴木(@moomooya)です。 ラクスの開発部ではこれまで社内で利用していなかった技術要素を自社の開発に適合するか検証し、ビジネス要求に対して迅速に応えられるようにそなえる 「開(か)発の未(み)来に先(せん)手をうつプロジェクト(通称:かみせんプロジェクト)」 改め 「技術推進プロジェクト」 というプロジェクトがあります。 2020年度上期に「サービス分割を見越したドメイン層設計」について取り組んだので、概要を紹介したいと思います。 今までの記事はかみせんカテゴリからどうぞ。 tech-blog.rakus.co.jp 今回の目標 余談:「開発速度を維持するために」サービス分割を検討するというのはなぜ なぜ最初からサービス分割をしないのか モノリスで困ること モジュラ
AWSジャパンは8月28日までに、日本オリジナルの学習コンテンツ「AWS基礎100本ノック」を、オンライン学習サービス「Skill Builder」で公開した。非IT領域の担当者や学生向けの映像コンテンツで、Amazonのアカウントがあれば無料で視聴できる。 講義は全10パート(計2時間40分ほど)で、AWSを中心にクラウドサービスに関する基礎用語を解説。その上で、AWSに関する最新動向の調べ方も紹介する。例えば「リージョン」や「アベイラビリティゾーン」といったクラウド用語に加え、AWSの活用事例がどこで見られるかなどを説明している。 Skill Builderは無料プランで600以上の学習コンテンツなどを利用できる学習サービス。有料サブスクリプション(月額29ドル)では無料版の内容に加え、AWSの資格試験の模擬試験などが受けられる。 関連記事 ITに自信がなくてもOK AWSの基礎がわか
最近「おれってガベージコレクションを勉強するにあたってめちゃくちゃ恵まれた環境にあるのでは?」とふと思い立ち、ベージコレクションの勉強を始めました。 ガベージコレクションの勉強を始めるにあたって、とりあえず「The Garbage Collection Handbook (first edition)」の邦訳である「ガベージコレクション 自動的メモリ管理を構成する理論と実装」を読むことにしました。 この記事では、読み終わってうれしいので、雑に感想を書きなぐっています。表記が「GC」だったり「ガベージコレクション」だったりするのは雑に書いたからです。 前提知識 ガベージコレクションの事前知識はほとんど不要で、何をしてくれるものか大まかにわかっていれば良い程度だと思います。つまり、ヒープに確保した領域を明示的に解放しなくても、何かのアルゴリズムでいい感じにやってくれる仕組み、ということを知って
InternalManufacturing.md 概要 アプリやサービスをソフトウェアエンジニアが作るときに「ここはSaaSで賄いましょう」「ここは自作しましょう」みたいな判断を迫られがちです。 プロダクトごとに背景が違うので一般論は述べにくいですが、最近の僕の気持ちはこんな感じ、というのをまとめておきます。 // 極論すると、99%くらいのソフトウェアはSaaSを使ったから(勝った|負けた)みたいな短絡的な要素は無くて、それ以外のところで勝敗が決まることが多いです。なので好きにしたら良いという気もする。 ふつうの人間は、内製した方がえらい、というバイアスがある 要はバランス、ではあるが僕は内製箇所を少なくする方を提案することが多い SaaS導入のメリットデメリット 何を今更、ですが一応書いておきます。 メリット SaaSを作ってるのは賢い(?)人たちなので、内製するよりも競争力があるSa
パフォーマンス改善の文脈で良く用いられるフレーズとして、「推測するな、計測せよ」というものがある。これはRob PikeのNotes on Programming in Cからの引用なのだが、原典と少し印象が違う。 Rule 1. You can’t tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don’t try to second guess and put in a speed hack until you’ve proven that’s where the bottleneck is. Rule 2. Measure. Don’t tune for speed until you’ve measured, and even then don’t
三国志(歴史に興味が湧く)こちら葛飾区亀有公園前派出所(雑学が増える)ハイパーインフレーション(経済が学べる、性癖が歪む)あさきゆめみし(日本古典文学が分かる)カイジ(駆け引きが学べる)地元最高!(裏社会が分かる)ナニワ金融道(連帯保証人はヤバいと分かる)数字であそぼ。(数学が分かる)島耕作シリーズ(経営が分かる) K2 (医学が分かる)風の谷のナウシカ(生き方が学べる)彼岸島(丸太の強さが分かる)マスターキートン(砂漠では背広がいい等のサバイバル技術が分かる)ツキイチ!生理ちゃん(生理について学べる)火の鳥(人間の業について学べる)正直不動産(不動産業について学べる)ドラゴン桜(受験について学べる)薬屋のひとりごと(薬学について学べる)重版出来!(編集について学べる)ブルーピリオド(美術について学べる)美味しんぼ(料理やネットミームを学べる)ヒストリエ(古代ギリシアを学べる)幼女戦記(戦
クラウド使いなエンジニアの皆様、猛暑と円安の中いかがお過ごしですか。上層部からインフラコスト削減を突きつけられてはおりませんでしょうか。 今回はおそらく初めてコスト削減についてAWSを軸に書いていきますが、考え方はどこの環境でも似たりよったりなので何かしらの足しになればと思う次第であります。 目次 長いです。ひきかえしたほうがいいぞ! コミュニティに捧げます AWSの売上 コスト削減とは 三大使命 コスト状況整理 Load Balancer 参考リンク 統合による削減 EC2 Autoscaling 参考リンク 情報整理 古いインスタンスタイプの変更 スケジュールの調整 スポットインスタンスの適用 軽量インスタンスの統合・サーバーレス化 アプリケーション処理の軽減 EC2 EBS EBSは高い 不要EBSを削除・スナップショット化 ボリュームタイプの変更 EC2 AMI NAT Gatew
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く