はじめに こんにちは、岩佐 幸翠(@kosui_me)です。カケハシで認証基盤・ライセンス基盤・組織階層基盤などのプラットフォームシステムを開発・運用する認証権限基盤チームのテックリードをしています。TypeScriptのクラス構文は、一見するとJavaやC#などの言語と非常に似ていますが、その背景にあるJavaScriptの特性により、振る舞いに重要な違いが存在します。これらの違いを理解することは、これまでの経験を活かしつつ、TypeScriptで堅牢なアプリケーションを構築する上で非常に重要です。本記事では、主にJavaやC#など、クラスベースの静的型付け言語に慣れ親しんだエンジニアの方々を対象に、TypeScriptでクラスを扱う際に特に留意すべきポイントを解説します。さらに、クラスを用いない関数型のアプローチについても触れ、TypeScriptにおけるドメインモデリングの多様な
シンプルかつ網羅的なAWS設計を生成するAIプロンプトの核心は: 構造化された出力フォーマット:設計書の章立てと各セクションの説明内容を明確に指定 具体的なパラメータ要求:抽象的な説明ではなく、実装に使える具体的な設定値を求める 選定理由の明確化:「なぜその選択をしたのか」の説明を求める 代替案との比較:検討した代替オプションとの比較を含める Well-Architectedの原則適用:AWSのベストプラクティスに基づく設計を促す このアプローチを活用すれば、AIの力を借りつつも、実装に直結する高品質なAWS設計書を効率的に作成できます。何より、設計者の時間を節約しながらも、その専門知識と判断を最大限に活かせるところに大きな価値があります。 ※以下を全量使用すると量が多いので、該当箇所のみの抜粋を推奨 以下の要件に基づいて、詳細かつ実装可能なAWSアーキテクチャを設計してください。各セクシ

はじめに 📘 この記事は ラクス Advent Calendar2023 の7日目の記事になります。 要件定義から基本設計、さらに実装や保守運用に至るまでの一貫した経験を何度か積んできましたが、毎回 「要件定義って具体的に何の項目が必要だっけ?」 「基本設計との違いって何だったっけ?」 「基本設計と詳細設計の区別って?」 といった疑問が頭をよぎってきました。 そんなわけで、これまでの経験を振り返りつつ、開発プロセスについて1からまとめていくことで頭の中の大掃除を行なっていきたいと思います🧹 この記事の対象者 🎯 開発プロセスについて学びたい方 要件定義の基本を学びたい人 要件定義と基本設計の違いがわからない人 一緒に開発プロセスについて復習したい方 前提 記事中の一部(特に要件定義や基本設計、詳細設計のサンプル)を自動生成で作成してます。一貫性の無い内容があるかも知れませんが、あく

Design, document, andbuildAPIs faster.Built with the modernAPIworkflow in mind, Stoplight brings an intuitive interface and thoughtful features to power your completeAPI design lifecycle. Architect theAPI digital connections that propel your business forward.Modern customers demand intuitive and frictionless digital experiences that you can only achieve withAPIs. Stoplight is the tool with

テクノロジックアートは、「最先端の技術でユーザーニーズに応える」を合言葉に、独自のUML/モデル駆動開発メソドロジーを武器に、皆さまのシステム開発を成功に導きます。 UML/モデリング モデリングスペシャリスト集団が長年蓄積したノウハウをもとに、モデリングを「活用」するためのトータルなソリューションをご提供し、保守性と再利用性の高いシステムを実現します。
One of the key elements ofGoogle's software engineering culture is the use of design docs for defining software designs. These are relatively informal documents that the primary author or authors of a software system or applicationcreate before theyembark on the coding project. The design doc documents the high level implementation strategy and key design decisions withemphasis on the trade-of

設計原則はよい設計をするための指針です。 では、よい設計とはなんでしょうか? もっとも重要なソフトウェア品質は発展性 ソフトウェアの発展性がビジネス価値を生む 発展性をうみだす7つの設計原則 モジュール化 モジュール化の2つのアプローチ 型によるモジュール化 手続き的なモジュール化 関心の分離 関心の4象限 入出力と計算・判断の分離 業務の関心と実装の詳細の分離 もっとも複雑な関心事(ビジネスロジック)の分離を徹底する カプセル化と抽象化 カプセル化 ビジネスロジックのカプセル化 抽象化 データ抽象 ビジネスロジックとデータ抽象 高凝集と疎結合 凝集度 結合度 隠された結合性の問題 定義の一点性 見た目が同じコード 7つの設計原則の学び方 コードの実装例 ドメインオブジェクト設計のガイドライン 実践ガイドとして使える本 設計の考え方を理解するための本 もっとも重要なソフトウェア品質は発展性

簡潔さは力なり---Succinctness is Power--- Paul Graham, May 2002. Copyright 2002 by Paul Graham. これは、Paul Graham:Succinctness is Power を、原著者の許可を得て翻訳・公開するものです。プロジェクト杉田玄白正式参加テキスト。 <版権表示>本和訳テキストの複製、変更、再配布は、この版権表示を残す限り、自由に行って結構です。 (「この版権表示」には上の文も含まれます。すなわち、再配布を禁止してはいけません)。 Copyright 2002 by Paul Graham 原文: http://www.paulgraham.com/power.html 日本語訳:Shiro Kawai (shiro @ acm.org) <版権表示終り> Paul Graham氏のエッセイをまとめ

Stop using frameworks for everything.Just stop. You don’t need a framework to writegood code and deliver products. Don’t get me wrong, frameworks are useful, but they are all-consuming and hide the application. So if you shouldn’t depend on frameworks what should you do instead? Clean architecture. More specifically, there are some patterns you can follow to better architect your application and
黒枠のラベルは、コンテンツホルダー自身が付与したものです。グレー枠のラベルは本文解析で自動付与されたものです。 【ニューヨーク共同】米グーグルは24日、傘下の動画サイト、ユーチューブについて、世界で配信する動画の画質を一時的に引き下げる方針を明らかにした。新型コロナウイルス対策の外出制限が広がり、サービスの利用が増えており、インターネットが停滞するのを防ぐ。グーグルの広報担当者は「システムへの負荷を最小限に抑えるために、役割を果たす」と説明。初期設定を容量が小さい画質にする。期間は1カ月程度の見通し。手動で高画質に切り替えることはできるという。 動画配信を巡り、欧州連合(EU)がIT大手各社に対し、容量の大きな高解像度(HD)の映像を減らすよう要請していた。

子持ちの時短通勤ママエンジニアであるちょうかおり氏。時間がない中で成果を出したいなら、お客さんにヒアリングし、本当に必要なものは何か、その背景を知ることが大事だと言います。 そのために必要なのが、「なぜ?」を聞くこと。お客さんの真の問題を解決するには、理想を正しく把握することが必要です。例を踏まえて、具体的なアクションプランを解説します。 託児のある勉強会は助かるちょうかおり氏(以下、ちょう): LTも後半になりました。タイトル「時短勤務ママエンジニアの、要件ヒアリング力」をはじめます。みなさんも少し疲れてきていると思うので、リラックスして聞いていただければと思います。 ちょうかおりと申します。2011年にVOYAGE GROUPという会社に新卒で入り、8年ぐらい勤めて、2019年に転職しました。ずっとPHPでコードを書いていたので、Ruby onRails歴でいうと1年目です。3年目と

音声概要 はじめに CRUDのうちUPDATEがもっともシステムを複雑化する。更新には複雑なルールが伴うからだ。業務的に複雑なルールが存在するのは仕方ないこともあるが、システム、設計で複雑さを更に増さないようにしたい。UPDATEに着目し、その発生をできるだけ削ることによって複雑さをおさえるためには、まずデータモデルをそのように設計しておかなけれなならない。このイミュータブルデータモデルは、それを手助けする手法で、手順に沿って実施すればある程度のスキルのバラつきも吸収できるように組み立てられている。 手順 Step1. エンティティを抽出する まずエンティティを抽出するところから始める。 5W1Hがエンティティの候補 従業員,患者,プレイヤー,顧客,生徒,... 製品,サービス,コース,曲,... 時間,日付,月,年,年度,... 送付先,URL,IPアドレス,... 注文,返品,入金,出
話したネタ 論理削除とはそもそも何か? 物理削除とは? なぜ、論理削除が生まれてくるのか?SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 理由1: 心理的なハードルの高さ、怖さがある 理由2: 削除したデータを検索対象に入れたい場合がある 理由3: ログとしての用途 理由4: 誤操作をすぐに戻したい アンチパターンとは何か? なぜ、論理削除はアンチパターンとして捉えられるのか? 全てのSQL文のWHERE句に削除フラグが必ず入る LIMIT 1などが蔓延していく 論理削除に気づくきっかけは何か? テーブル設計や、規約から気づく 論理削除というアンチパターンをどのように解いていくか? 論理削除という概念は世の中にまずなく、お客様は論理削除という言葉を使っていない 要件をどのように設計すればいいのか?ORMの論理削除プラグインはあまり良くない 状態遷移として捉える方法 Soft

はじめにHTML+CSSコーディングにおいて、「どのように要素を特定してスタイリングするのか」というCSS設計上の課題に対し、「ひとつ上の視点で思考できる概念図」を紹介します。 この図を用いることで、3種類の異なるスタイリングアプローチ(OOCSS方式 / 包括要素基点方式 / BEM方式)の本質を一度に俯瞰できるため、全てを同じ枠の中で捉えられます。そして、最終的には種別や規模の異なるサイトやプロジェクトに対し、同じメソッドを使ってそれぞれ最適な設計がおこなえるようになります。 ※この記事は標準化ノウハウ公開の一環として書いています。 仕組みの概要や前提事項などについては「UltimateCoding 概要・前提事項」のエントリをご確認ください。 経緯 / 制作者中心のデータ分類 そもそもですが、HTMLとCSSは目的も仕様も異なる言語です。HTML+CSSコーディングを一般的な視点

ファイルを一括でリネームしたいことはありませんか。私はあります。ということで作りました。 インストールはHomebrew brew installitchyny/tap/mmv または以下のコマンドでできます。go getgithub.com/itchyny/mmv/cmd/mmv スクリーンショットではvimが起動していますが、 $EDITOR が設定されていればそれを使って編集することができます。 エディターでファイル名を編集して一括でリネームするというのは、新しい発想ではありません。 実際、多くのソフトウェア (特にファイラー) がこの機能を実装しています。 massrenvimv qmvVim pluginvimfiler Defx Vaffle fila.vimEmacs Dired 私はvimfilerの一括リネーム機能をよく使っていました。 特に不満はないのです

こちらが何を聞いても、一事が万事この調子です。その後、スケジュールに押し切られる形でシステムはリリースされ、現場は火の海となりました。 鳴りやまない監視アラーム…… 対処方法のわからない障害…… 使い道のわからない体裁だけ整った手順書の数々…… 右往左往する運用メンバーと構築メンバー…… 結局、運用が安定するまで半年以上の期間がかかりました。 その頃は「運用設計」という言葉も概念もまだ浸透しておらず、残業によるマンパワーで運用を安定稼働させるしか術はありませんでした。 (この時にこの本があったら、どれだけ指標になったかと今なら思います)。 運用を取り入れた設計構築へのチャレンジ この経験から、運用が大変な理由の諸悪の根源はシステムリリース時にあると考え始めました。いま思えば、初めに入った楽園のような現場は、目的のはっきりした手順書しかなく、トラブル時の連絡先も明確でした。“楽園システ

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く