非同期メッセージングを使ったインテグレーションパターン (EIP)は、クラス設計にも参考になるものが多い。 すぐに非同期メッセージングを使わないとしても、EIPは設計の参考情報として知っておきたい。
グーグルが開発した画像圧縮ツールSquoosh。フロント開発向けにNode.jsで扱う方法まとめ 『Squooshスクーシュ』というGoogleが開発した画像圧縮ウェブアプリがあります。ブラウザで変換結果を見ながら圧縮設定ができるので、画像圧縮の難しい知識を持たない方でも使いやすいことが特徴です。圧縮だけでなく、WebPなどの各種フォーマットへの変換・リサイズといったこともできる便利ツールです。 このSquooshをNode.jsで扱える『libSquoosh』が存在します。libSquooshは大量の画像を一括で圧縮、WebPへの変換、リサイズなどの処理をこれ1つで完結できるのがポイントです。昨今のウェブはページの読み込み時間が重視される傾向があります。画像のファイルサイズは読み込み時間に大きく影響するため、画像圧縮は重要なテクニックです。libSquooshをwebpack・Viteと
今押さえておくべき知識をアップデートし、ノウハウを共有し、さらなるスキルアップを実現する場として開催されている、AWS で最も Developer に特化したカンファレンス「AWS Dev Day Online Japan」。ここでSr. Product Developer Advocate, Elastic Containersの原氏が登壇。続いて、運用性に優れたソフトウェアが重要な理由と、運用性を損なう8つの実装例について紹介します。前回はこちらから。 You build it, you run it 原トリ氏:(スライドの「You build it, you run it」を指して)この言葉、聞いたこと、見たことがある方がいるかもしれません。これは、2006年にACM(Association for Computing Machinery)という団体が、Amazon AWSのCTOで
今押さえておくべき知識をアップデートし、ノウハウを共有し、さらなるスキルアップを実現する場として開催されている、AWS で最も Developer に特化したカンファレンス「AWS Dev Day Online Japan」。ここでSr. Product Developer Advocate, Elastic Containersの原氏が登壇。まずは、コンテナワークロード超入門として、コンテナのデプロイ時とクラッシュ時に起こることを紹介します。全3回。 自己紹介 原トリ氏:オーナーシップの塊、トリです。本日はタイトルにあるとおり、アプリケーション開発者はAmazon ECSあるいはKubernetesといったコンテナオーケストレータのことを、どこまで知るべきかについて話します。もともと「どこまで知ればいいのか」というタイトルでしたが、思いが強すぎて「知るべきか」に変わりました。 あらためて
なぜ執筆プロジェクトを立ち上げたのか? 2020年の年末から年明けに開催された技術書典10で「はじめてのJest入門」を執筆しました。私自身はIT業界に約10年いますが、受託案件やR&Dのようなプロジェクトに参加することが多く、テストについての経験があまり得られないまま過ごしてきました。そんな中で社内のメンター&メンティープログラムでTDD(Test-Driven Development:テスト駆動開発)について学ぶ機会があり、セッションを通して学んだことを記憶に残す意味でも、この本を書くことに至りました。しかし、前回の書籍ではTDDやテスト自体の概念についてはあまり触れず、セッションで利用したJestの基本的な機能や使い方についてフォーカスしました。 前回の技術書典10のイベントを通じて、同じような悩みや課題感を持った方多くがいることを知ることができました。JavaScriptは元々フロ
.NET SDKに含まれているdotnetコマンドを使うとインストールされている.NETランタイムやSDKの情報を表示できるようになる ときどき必要に駆られて、小さなプログラムを作ることがある。Windowsだと大抵はWindows PowerShellで片が付くことが多いのだが、そうでないこともある(あとPowerShellには素直じゃないところがあって……)。 その場合、筆者はC#を使うのだが、標準的な開発環境のVisual Studioは大きく、起動にも時間がかかる。基本的には本格的なアプリケーションを開発するためのものなので、実験的な短いプログラムを作るのには余計な手間と時間が多すぎる。イメージ的には、庭に小さな穴を掘るのにショベルカーを使うような感じである。 そこで便利なのが.NET SDKに含まれているdotnetコマンドだ。コマンドラインだけで利用でき、GUIは一切なし。コマ
株式会社ログラスの松岡(@little_hand_s)です。 little-hands.hatenablog.com ↑の記事でドメインオブジェクトの設計方針を書きましたが、それ以外の全般的な設計/レビュー観点について書きます。 非常に汎用性のある内容なので、数多くのプログラミング原則を覚えるより、まずこの観点でチェックできるようにすると即効性が期待できます。 前提として、階層化されたアーキテクチャ(オニオンアーキテクチャなど)を採用しているものとします。 ①レイヤーの責務違反の実装をしていないか ②高凝集/低結合になっているか 高凝集 クラスに関して メソッドに関して 低結合 ③ユニットテストを書きやすいか 合言葉 筆者執筆書籍 現場での導入で困ったら ①レイヤーの責務違反の実装をしていないか 例として、「ユースケース層にドメイン層のルール/制約に関わる実装をしている」場合はNGです。
どうもエンタープライズ企業の調達を刷新したい企業、Leanerの大平です。 エンプラSaaSの雄である会社の創業メンバー兼役員の方と、オンラインランチの機会があり、示唆深かったので許可をいただきメモ公開します。 ※この記事ではエンタープライズ企業は略称としてエンプラと書きます エンプラ向けにサービス開発している方の参考になったら嬉しいです! 拡散していただけると次回のやる気になるのでそれも嬉しいです(重要)! より話してみたい方や、少しリーナーに興味あるかもという方は、下記URLよりカジュアルに話しましょう!! "SMBのMVP"と"エンプラのMVP"一緒にすんな当然だが、SMBとエンプラでは、業務のオペレーションや目標・ミッションなどすべてにおいて、個社性がまったく違う。 比較的、SMBでは、個社性が低く。エンプラでは、個社性が高い。 だからこそ SMBは、MVPが「画一的」で許される。
Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。takeoka氏は、8進数について調査、発表をしました。 よく使う命令は暗記をしていた16進世代 takeoka氏(以下、takeoka):takeokaです。低レイヤー、長い人生、そして……まぁ、格調が低い話をします。 私は16進世代です。若い人にはわからないかもしれませんが、昔はTK-80しかなく、assembleしてくれる機械なんて持っていなかったので、みんなアセンブラ・ニーモニックでバーっとプログラムを書いて、それが終わったらおもむろに16進コードへの変換を手でやっていました。だからよく使う命令は、基本的に暗記していました。 あれですね。HLレジスタへのimmediateのloadは「21」とか、Aレジスタへのimmediate loa
本連載では、エンタープライズシステムでコンテナ/Kubernetesを活用した業務システムを開発・運用するエンジニアに向けて、知っておくべきKubernetesセキュリティの基礎知識、Microsoftが提供するパブリッククラウド「Azure」を使ったクラウドにおけるKubernetesのセキュリティ対策のポイントや注意点といった実践的なノウハウを紹介します。 コンテナ/Kubernetes環境に求められるセキュリティとは? 今日、オンプレミスの環境で運用されていた業務システムの多くが、クラウドへの移行を進めています。クラウドを活用することで、高い拡張性を持つセキュアなシステムを短期間で開発できます。加えて、コンテナベースのクラウドネイティブ・アプリケーションにモダナイズすることで、変化の激しいビジネス環境に追随できるだけでなく、最新技術を起点としてこれまでになかったビジネスモデルを構築し
本記事は2021年9月27日に公開したPython security best practices cheat sheetを日本語化した内容です。 2019年、Snykは最初のPythonチートシートをリリースしました。それ以来、Pythonのセキュリティの多くの側面が変化しています。開発者向けセキュリティ企業として学んだこと、そしてPython特有のベストプラクティスに基づいて、Pythonのコードを安全に保つために、この最新のチートシートをまとめました。 【チートシート】2021年版Pythonセキュリティベストプラクティス 本記事では、下記に関するPythonのセキュリティに関するヒントを紹介します。 外部データを常にサニタイズする コードをスキャンする パッケージのダウンロードに注意 依存先パッケージのライセンスを確認する システム標準版のPythonを使用しない Pythonの仮
あけましておめでとうございます、になるはずだったのですが、後から読んだ『Googleのソフトウェアエンジニアリング』の方を先に記事にしたので新年2本目の更新です。 ky-yk-d.hatenablog.com さて、本題。最近のお気に入りポッドキャストであるe34.fmで激賞されていた『A Philosophy of Software Design』を読みました。初版は2018年に出ていて、今回は2021年に出た第2版を読みました。 スパゲッティコードを想起させる装丁 A Philosophy of Software Design, 2nd Edition (English Edition) 作者:Ousterhout, John K. Amazon scrapbox.io どんな本? 書籍のテーマはソフトウェアの複雑さです。複雑さとは、システムを理解したり変更したりするのを困難にさせるも
「ファイザーワクチン」誕生秘録は、疾走感あふれる奇跡のサクセスストーリーだ!『mRNAワクチンの衝撃: コロナ制圧と医療の未来』 バイオベンチャー・ビオンテック社の新型コロナウイルスワクチン開発秘録だ。その疾走感が半端ではない。なにしろ、ワクチン開発に取り組むチームを組織した日からヒトに投与するまでわずか88日しか要さなかった。このことからだけでも、その猛烈なスピードが想像できるだろう。 え?ワクチンといえばファイザーとモデルナのmRNAワクチン、それにアストラゼネカとかで、ビオンテックなんて聞いたことない、という人が大多数かもしれない。ごもっともである。しかし、ファイザーのワクチンは、ファイザー社ではなく、ドイツのビオンテック社が開発したものなのだ。そののワクチンについては、ファイザーが資金提供をおこない、50/50の権利を有するという契約がなされている。だから、本来なら、ファイザー・ビ
2021年11月10日と11日の2日間、LINE株式会社が主催するエンジニア向け技術カンファレンス「LINE DEVELOPER DAY 2021」がオンラインで開催されました。そこで竹下秀則氏が、大規模クライアントアプリ開発チームの生産性を改善した仕組み化について紹介しました。まずはチームの成長と課題について。 LINEのクライアントアプリ開発チームの効率化事例 竹下秀則氏:みなさん、こんにちは。今日は「大規模クライアントアプリ開発チームの生産性を改善した仕組み化の数々」というタイトルでお話しします。LINE福岡開発1室所属のエンジニアリングマネージャー、竹下と申します。よろしくお願いいたします。 さっそくですが、本日のアジェンダはこちらになります。まずは私がマネージャーとして所属している、今日お話しする改善の舞台となったチームについて紹介します。 次にそこで直面した課題の数々について赤
ビジネス・ブレークスルー大学(BBT大学)は、オンラインのみで経営の学士資格を取得できる、日本唯一の大学です。今回はBBT大学主催で行われた、経営学部教授・斉藤徹氏の 『だから僕たちは、組織を変えていける やる気に満ちた「やさしい組織」のつくりかた』刊行記念講演の模様をお届けします。社員のエンゲージメントが高い「やさしい組織」をつくるために一人ひとりにできることは何か、今まで斉藤氏の30年近い起業家経験から得られたエッセンスが1冊にまとめられています。本記事では、建設的な議論を行うための「推論のはしご」の考え方について、組織に「安心感の醸成」をもたらすためのポイントについて語られました。 建設的な議論を妨げる最大の要因は、感情的になってしまうこと 斉藤徹氏:続いて、(チームメンバーの意識が)外に向いたらどうすればいいのか。これはみんなが意見を出し合うことが大切です。でもこの建設的に第3案を
The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/) The design is licensed under the Creative Commons 3.0 Attributions license. 種々の linter が様々なプロダクトの品質を高めてきた、というのは疑う余地のない事実です。実装の初歩的な問題をエディタ内や CI/CD パイプライン中で機械的に検出できる環境を作れば、開発者はコーディングやコードレビューの邪魔になる些末な問題を早期に頭から追い出し、本質的な問題に集中できます。 また、そのような環境づくり(e.g. linter のルールセットの定義、組織独自のルールの作成、…)は、まさに開発組織のベースラインを定義する作業として捉えることができます。一度誰かが定義
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く