You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Generate diagrams from markdown-like text. Live Editor! 📖 Documentation | 🚀 Getting Started | 🌐 CDN | 🙌 Join Us 简体中文 Try Live Editor previews of future releases: Develop | Next 🏆 Mermaid was nominated and won the JS Open Source Awards (2019) in the category "The most exciting use of technology"!!! Thanks to all involved, people committing pull requests, people answering questions! 🙏 Mermaid
外部キーとは「親テーブルに存在しないデータを子テーブルが持つことが無いようにするための制約」です。 例えば部署テーブルと従業員テーブルがあり、従業員テーブルに部署IDがあった場合、存在しない部署IDで従業員テーブルを登録できないようになります。 外部キーの役割 外部キーを作成することによって基本的にはこの3つの制約を実現できます。 1. 存在しない値を外部キーに設定できなくなる 2. 親テーブルに存在する子テーブルの外部キーで繋がれたデータを削除できなくなる 3. 親テーブルのレコードを削除したときに外部キーで紐づいている子テーブルのレコードも削除する 一つずつ見ていきましょう。 存在しない値を外部キーに設定できなくなる 子テーブルに設定した外部キーの 実際に試してみましょう。今回はこちらのテーブルを使います。 EMPLOYEES DEPARTMENT BRANCH DEPARTMENTテ
TypeScript 学習記録 #4 の続編。 今回のメインテーマ、「ジェネリック型について」。 今回主に参考にした教材: 【日本一わかりやすいTypeScript入門】ジェネリック型を使いながらポリモーフィズムを理解する 見返す用リスト(主に自分用) TypeScript基礎学習を完走したので、いつでも見返すことの出来るようにリスト化しておく(5/17) TypeScript 学習記録 #1(学習ルート策定やTS参考教材一覧) TypeScript 学習記録 #2(TS / ESLint / Prettierの環境構築) TypeScript 学習記録 #3(基本の型定義・関数の型定義) TypeScript 学習記録 #4(オブジェクトと配列の型定義) TypeScript 学習記録 #5(ジェネリック型(ジェネリクス)) TypeScript 学習記録 #6(InterfaceとTy
【STEP1】「abstract」とは何か? 「abstract」は直訳すると「抽象的」という意味です。 「抽象的」とは、一体どのようなことなのでしょうか。 抽象的を辞書で調べると、以下の2つの意味が書かれています。 Javaの「abstract=抽象的」は、1の意味に近く「共通なものを抜き出し、まとめる」事ができると考えてみてください。 この説明も具体性に欠ける為、抽象的な感じではありますが、具体的に「abstract」を解説していきたいと思います。 プログラミングで使用される「abstract」とは? プログラミング言語における「abstract」は「メソッドの修飾子」として使われます。 ※ 修飾子とは、メソッド、クラスなどの性質を決定付けするものです。 【※初心者向け】「メソッド」ってなに? メソッドとはそもそも何でしょうか。 簡単に説明すると「メソッド=複数の処理をまとめたプログラ
簡単に書くよ ビジネスロジック(英:business logic)とは そのシステムにおける、システム固有の処理を行う部分……的なニュアンスだけど具体的に何を指すかは結構あいまいで、みんな何となくのフィーリングで使っている用語。 もう少しざっくりと書くと システムにおける実際のお仕事部分のこと です。 サクッと一言で説明すると システムにおいて、そのシステムとしての実際のお仕事をする部分 が「ビジネスロジック」です。 ちなみに「ロジック」は「プログラムにおける処理の内容、手順、方法」ね。 例えば、そうですね。 ピヨ太君が「ピヨピヨ業務システム」を作ったとしましょう。 ピヨピヨ業務システムは、ぺちぺち情報を入力すると、あれやこれやの処理が行われて、その結果がデータベースに登録されるシステムです。 ピヨピヨ業務システムを見たピヨ子さんは、ピヨ太君に ピヨピヨ業務システムって何をするシステムなの
アプリケーション開発で、「ビジネスロジックは分離しろ」だとか「Controller にビジネスロジックを書くな」といったことをよく言われると思います。 しかし、ビジネスロジックという言葉の意味を聞いたり調べたりしてみても、「システムのコアの部分」とか「システムの目的になる処理をするところ」みたいなことを言われたりして、よく分かりませんでした。 そんな中、クリーンアーキテクチャや DDD の戦術的設計について学ぶことで、「ビジネスロジックとは何か」、「ビジネスロジックはどう実装するか」について、自分なりの考えが整理されてきたので、この記事ではそれをまとめます。 ※ 曖昧な言葉を自分としてどう使っているかという話になります。違う意味で使う方もいると思うので、ご注意ください ビジネスロジックとは何か 「システムのコアの部分」とか「システムの目的になる処理をするところ」といった説明も正しいとは思い
ビジネスロジック(英: business logic)は、データベース上のデータに対する処理手順といったようなものを指す、ソフトウェア工学的な用語である。「アルゴリズム」という語が説明に使われていることがあるが、アルゴリズムは数学的・論理的に明確な概念であり間違った説明の仕方である。基本的には、エンタープライズ系(業務支援系)ソフトウェアを開発する企業が内部的に、もしくは顧客への販売促進のために用いる用語である。この用語は、主にプログラムが3層構造となるWebアプリケーション開発で使われる。ビジネスロジックは3層の中の中間層(アプリケーションサーバ)に相当する。いずれにしても、ビジネスロジックという用語は明確な定義がなく、人によって意味が異なる可能性がある。 ビジネスロジックの範囲[編集] 実世界のビジネスオブジェクト(勘定、貸付金、旅程表、在庫目録などなど)をモデル化したもの そのような
はじめに アプケーション・アーキテクチャについて学ぶと「MVC」や「3 層アーキテクチャ」といった言葉にたどり着きます。 さらに勉強を進めると「MVVM」、「ドメインモデル」、「クリーンアーキテクチャ」など、よく分からない言葉がどんどん増えていきます。 また、「オブジェクト指向」を勉強しても、実際のアプリケーションでの使いどころが分からなかったりします。 この記事では、これらの用語の非常に分かりにくい関係を整理しました。 2 種類の 3 層 伝統的な Web アプリケーションは、以下のように 3 種類のサーバから成り立ちます。 このサーバ構成を 3 層アーキテクチャと言うことがあります。 一方、アプリケーションサーバで動いているプログラムの内部構造も、以下のように 3 層に分離することがあります。 これも 3 層アーキテクチャと言うことがあります。 この記事では、サーバの構成ではなく、アプ
注意 これは自分用のメモです。未熟な雑魚Springユーザーが書いたものなので、きっと間違いもあります。ご容赦ください MVCパターンはwebアプリケーションの開発に使われるパターンで、初めてreilsでポートフォリオを作ろうとしたときに僕は初めて知りました。ただ、SpringMVCは厳密にはフロントコントローラーパターンと呼ばれるアーキテクチャパターンで、僕も十分に理解できていないが、全てのリクエストを一旦受け取るフロントコントローラーとと呼ばれるコントローラーを実装したパターンらしい。 一方、SpringMVCの特徴は以下の通りです。 1. POJOで実装されてる POJOってのはシンプルなJAVAのオブジェクトって意味。フレームワーク独自のインターフェースを実装する必要がない! 2. アノテーションを使って開発 リクエストマッピング(ここにアクセスしたらこのメソッドを実行するとか)な
javaBeams インスタンスを保存できる領域の一つ。 以下のルールがある。 1. 直列化可能 2. クラスはpublicでパッケージに所属 3. publicで引数のないコンストラクタを持つ 4. フィールドはカプセル化されている 5. 命名規則に従ったgetter/setterを持つ サンプルプログラム コードごとに随時解説を入れます。 Model アプリケーションの主たる処理やデータの格納などを行う modelパッケージに保存。 package model; import java.io.Serializable; public class Health implements Serializable { private double height, weight, bmi; private String bodyType; public double getHeight() {
MVCとはWebフレームワークで一般的に取り入れられるアプリケーション設計の機能を整理するための概念です。 モデル・ビュー・コントローラーの頭文字をとり、MVCといいます。ユーザーインターフェイスと内部データを分けるデザインパターンの一つに数えられます。 デザインパターンとはソフト開発つに当たる「型紙」のことで、MVCは設計の時に使うコンセプトというとわかりやすくなります。 MVCの概念とは? MVCの概念とは「機能によってプログラムの中身を分けて記述する」ことです。MVCは機能ではなく考え方で、アプリケーション全体のコードを管理するための考え方です。 役割ごとに意味のある単位で機能をセットすると管理しやすいという考え方で、M=モデル、V=ビュー、C=コントローラーに分割しセットします。 複数人で開発を行った場合に、どこに何があるのかすぐ分かるように用いる型紙がMVCです。 MVCの役割3
そもそも「MVCモデル」とは一体何でしょうか。そんな疑問から概念やそのメリットをわかりやすく解説していきます。「M」「V」「C」で各項目ごとに内容や各割を説明していきます。MVCの概念はもちろんの事、MVCを利用していく上でのアドバイスや「開発側に利点」にも切り込んで徹底解説していきます! MVCの概念 MVC は、Webフレームワークで一般的に取り入れられているアプリケーション設定を整理するための概念の一つです。 モデル(Model)頭文字「M」、ビュー(View)頭文字「V」、コントローラー(Controller)頭文字「C」で「MVC」と言います。 それぞれ次の役割を持ちます。 【モデル】 システム内のビジネスロジックを担当します。システムの設計や機能をどうするかがここで行われます。 【ビュー】 実際に表示したり、入力する機能の処理を行うのがビューです。 【コントローラー】 コントロ
いろいろなxx駆動開発があるので、ちょっとメモしておこうかと。 どれもざくっとした内容でしか書いていませんけど。。。 テスト駆動開発 (Test Driven Developmen; TDD) テストファーストに基づく設計手法で、軽快なフィードバック、きれいで動くコードを作ろうという開発プロセスです。ユニットテストを使ったテスト技法といった程度に見られていますけど、本当はシステムテストも含んだ開発全般を含んでいます。 ビヘイビア駆動開発 (Behavior Driven Development; BDD) TDDがテストという言葉が先行してしまったので、改めて提唱されたのが振舞駆動開発。システムに期待されている「振る舞い」や「制約条件」を上位レベルからテストしようという開発手法です。JBehaveやxSpecといった自然言語で実装できるフレームワークが登場しています。 品質特性駆動型設計
DDD難民に捧げる Domain-Driven Designのエッセンス 第1回 ドメイン駆動設計とは 株式会社オージス総研 アドバンストモデリングソリューション部 佐藤 匡剛 Domain-Driven Design Tackling Complexity in the Heart of Software Eric Evans 著 Addison-Wesley, 59.99ドル 560ページ ISBN: 0-321-12521-5 「ドメインモデリング」は、アプリケーション開発において最も重要な部分だとされています。しかしその割には、フレームワークの使い方やアーキテクチャの設計方法など技術に関する解説書はたくさんあるものの、ドメインモデリングそのものを扱った書籍はほとんど無かったと言ってもいいでしょう。Eric Evansの『Domain-Driven Design』(以降DDD)は、「
In software programming, SOLID is a mnemonic acronym for five design principles intended to make object-oriented designs more understandable, flexible, and maintainable. Although the SOLID principles apply to any object-oriented design, they can also form a core philosophy for methodologies such as agile development or adaptive software development.[1] Single-responsibility principle: "There shoul
こんにちは。技術部 開発基盤グループの諸橋です。 クックパッドでは昨今の多くのWeb企業と同じように、GitHub EnterpriseのPull Requestを使ったコードレビューを広範に実施しています。わたしたちのコードレビューでは、ソースコードの字面にとどまらず、サービスの機能として魅力的かどうかや、保守性を含めた設計が適切かといった議論に発展することも良くあります。 きょうはそんななかで話題に上がった「現在時刻」の扱いかたに関する設計の話を書きます。 背景 サービスを開発・運営している我々には、時間帯によって出し分けたり、特定の期間のみに表示したいコンテンツがたくさんあります。 そのたびにデプロイし直すというのはつらいので(特に24:00に出なくなるコンテンツなど)なんとかしたくなりますが、一方で時限式のコンテンツはその時になるまでちゃんと動いているか確証が取れないので怖いです。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く