タグ

tanosikeizaigakuのブックマーク (422)

  • 継承と委譲の使い分けと、インターフェースの重要性について

    この記事は、「継承と委譲はどういった性質の違いがあり、どういった基準で使い分けているか?」「インターフェースは何が嬉しいのか?」といった点に関して自分なりに言語化を試みたものです。 TL;DR 継承は子が親と同じ能力や責務を獲得する。委譲は子が親を単なるツールとして所有するだけで、能力や責務は同じにはならない。 子にとって親は単なるツールである場合は委譲を使うのが良い。継承してしまうと子が複数の責務を負うことになり、そのことによる不都合が生じる。 逆に、子が親と同じ責務を持つべき場合には継承を使う。委譲を使うと、子が親と同じ能力を持っていないことによる不都合が生じる。 インターフェースを使うことで責務の分離を強制することができる。インターフェースを適切に設計することができれば、改修時の影響範囲が最低限に留まるなどシステムの保守性や堅牢性が向上し、テストの容易性も得られる。 継承と委譲の違い

    継承と委譲の使い分けと、インターフェースの重要性について
  • xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - 千里霧中

    最近、昔作ったTest Doubleの解説資料を参照・引用してくれる方がちらほら出ていて恐縮しているのですが、見直してみると結構わかりにくい資料なので今回文章としてまとめたいと思います。内容は世間一般的に言われているMock、Stub、Fake、Dummyといった言葉の定義になります。 Test Doubleとは Test Doubleとは、テスト実行時に、テスト対象が依存しているコンポーネントと置き換わるものです。「テスト代役」と訳されることもあります。世の中でMock、Stub、Fake、Dummyなどと呼ばれているものの総称に位置づけられます。 簡単な例を以下に示します。このコードでは、テストメソッド「テストコード()」がメソッド「テスト対象()」をテストしています。また「テスト対象()」は、中でメソッド「外部メソッド()」を実行しています。なお「外部メソッド」はテスト対象でないとし

    xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - 千里霧中
  • SPA で役立ちそうな OAuth 2.0 for Browser-Based Apps を読んだ - ぷらすのブログ

    こんにちは、@p1assです。 GW 中に SPA で OAuth を使うときのプラクティスについて調べていたところ、OAuth2.0 for Browser-Based Apps という RFC の Internet-Draft を見つけました。 一通り読んでみたところ、現時点でのベストプラクティスが良い感じにまとまっていたので、興味深かったところを抜粋して紹介します。 全てを網羅するわけではないので、興味がある方は原文を読んでください。 This specification details the threats, attack consequences, security considerations and best practices that must be taken into account when developing browser-based application

    SPA で役立ちそうな OAuth 2.0 for Browser-Based Apps を読んだ - ぷらすのブログ
  • モノリシックな大規模アプリを運用する技術-サービスを“分割しない”メリットをSansanの実例に学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)

    モノリシックな大規模アプリを運用する技術-サービスを“分割しない”メリットをSansanの実例に学ぶ モノリシックにアーキテクチャを構築するメリットとは?近年、マイクロサービスアーキテクチャが注目を集めていますが、Sansanは大規模なアプリケーションに成長したいまも、モノリシックな構造を維持しています。ドメインコンテキストの共有のしやすさ、チームビルドのしやすさなど、モノリシックな構造だからこそ得られるメリットを聞きました。 モノリシックである利点 - ドメインコンテキストが共有しやすい Backlogを一化し、モノリシックなシステムを運用しやすく 技術的負債の解消 ~事業フェーズに適した技術を選定する~ 技術的負債の解消 ~リプレース可能な部分は積極的にエコシステムを活用~ 技術的な改善をビジネスの改善に結びつける 近年、複数の小さなサービスをAPIによって連携させるマイクロサービス

    モノリシックな大規模アプリを運用する技術-サービスを“分割しない”メリットをSansanの実例に学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)
  • マイクロサービスは万能薬ではない──マイクロサービスの生々しい話を聞いてきた

    こんにちは、編集長の白石です。 この記事は、9月24日に開催されるHTML5 Conference 2017に登壇するエキスパートに、予定しているセッションのトピックを中心に、様々な技術的なお話を伺おうというものです。セッションの内容をより深く理解する手助けになるだけでなく、記事単体でも面白く読んでいただけることを目指しています。 今回お話を伺ったのは、合同会社 Starlight & Storm 代表社員の長谷川裕一さんです。 ▲合同会社 Starlight & Storm 代表社員 長谷川 裕一さん 長谷川さんのセッションは「Microservices入門」(ルームB 11:20-12:00)です。 (現在HTML5 Conferenceは定員オーバーの状態ですが、無料イベントということもあってキャンセルも多めに出るらしいので、あきらめずにキャンセル待ちすることをお勧めします!) マ

    マイクロサービスは万能薬ではない──マイクロサービスの生々しい話を聞いてきた
  • Prettier にまた苦しまされてる : (*x).b=z->a+y/c

    ◆ オプションつけないのにやっかいな強制変更ばかりしてくる Prettier ◆ バージョン上げないように固定してる ◆ なのに久々に以前のファイルをフォーマットしたら結果が変わってる ◆ 折返し地点のみ ◆ 今のところ実用レベルの代替ツールはなさそう ……が設定が少ないことにこだわりすぎて 逆に不便なところが多いです issue で変更要望があって多くの人が賛成していても対応しないという姿勢です オプションを追加すればいいのにそれすら拒否です その割にときどき悪化するような破壊的変更を行います それでもう新しいバージョンは使わないと宣言してる人やバージョン固定の方法を勧めてる人もみかけます 私もあるとき 更新しても余計な変更しかされないので更新しないようにしました VSCode拡張機能で使ってるので 自動更新をオフにして過去バージョンの VSIX ファイルをダウンロードしてインストー

    Prettier にまた苦しまされてる : (*x).b=z->a+y/c
  • 【Jasmine】Promiseのテスト方法 - 開発覚書はてな版

    概要 JasmineでのPromiseをテスト時にはテスト定義の引数にdoneを利用します。 doneを利用することで、非同期処理完了後まで待機してくれます。 doneを設定しない場合は、Promise.then内の処理をスルーしてテストを終了するため、正常なテスト結果がでない場合があります。 動作環境 TypeScript 2.7.2 Jasmine 2.8.0 サンプルソース it ('Promise Test 1', (done: DoneFn) => { // setup const func = new Promise<string>((resolve, reject) => { setTimeout(() => { resolve('ok'); }, 500); }); // exercise func.then(data => { // verify expect(data)

    【Jasmine】Promiseのテスト方法 - 開発覚書はてな版
  • 「Angular の依存性の注入」を読み直してみた - とんかつ時々あんどーなつ

    全部公式ドキュメントに書いてあるが、章立ても多くてまぁまぁな分量だったのでまとめた。 Angular の依存性の注入 サービス(@Injectable() デコレータが付与された class)は injector の範囲内でシングルトンインスタンスを提供する injector の範囲内なのでアプリケーションでシングルトンとは限らない アプリケーションは一つの root injector があるため root injector に登録された場合はアプリケーション全体でシングルトンインスタンスになる @Injectable() デコレータがつくことで Angular は注入可能であることがわかる ただし、provider で injector を設定するまで注入できない provider のスコープ providedIn: root: root injector に提供される → アプリケーシ

    「Angular の依存性の注入」を読み直してみた - とんかつ時々あんどーなつ
  • べ、別にSQLが理解できないわけじゃないんだからねッ! - nemuzukaの「明日から本気出す」

    私が携わるプロジェクトでは、 極力SQLでビジネスロジックを書くことを回避してもらってます。 理由は、SQLでロジック書かれると、 JavaSQLでロジックが分散してしまうからです*1。 SQLだろうが、Javaだろうが、 訳のわからないロジックを書けてしまう事は事実です。 システムの目的はぶっちゃけると、 永続化してデータを貯め、それを参照させること。 システムは生き物です。今のロジックでは問題ないかもしれませんが、 遠くない未来では仕様を満たさなくなるかもしれません。 仕様が変更されると、今まで正しかった振る舞いも 正しくないことになります。 システムとして存在し続ける為に、 正しい振る舞いになるようにロジックを変更する必要があるのですが、 テスト、もしくは動作確認をする際、SQLでビジネスロジックが記述されていると 事前データの準備が必要になってきます。 テスティングフレームワーク

    べ、別にSQLが理解できないわけじゃないんだからねッ! - nemuzukaの「明日から本気出す」
    tanosikeizaigaku
    tanosikeizaigaku 2022/11/25
    理想は、SQLの役割はデータアクセスを留めることなんだよなあ。難しいのは、データベースのレコード自体にビジネスロジックが左右されるとき。何万件もある履歴を使って処理を作りたいたきとか、どうするか
  • React を使って、kintone にガントチャートとカンバンを表示しよう!

    tanosikeizaigaku
    tanosikeizaigaku 2022/11/18
    kintoneにもカンバンあるんだな。チケット管理はこちらでやってるから、kintoneのレコードからそのままカンバンにできたら楽だなぁ
  • 小さな開発チームでカンバンを使ってみた - EmotionTechテックブログ

    はじめに こんにちは、Product Division Division Headの吉田です。 2022年からプロダクト開発部はProduct Divisionという名前になりました。 ようやく新しい部署の名前にも慣れてきました。 昨年は開発体制について紹介させていただきましたが、今回はEmotion Techの開発プロセスについて紹介します。 10名程度の体制で開発手法について考えている方への参考情報になれば嬉しく思います。カンバンの導入プロセス、カンバン運用についても少し紹介させていただきます。 カンバン使う前はどうしていたのか Emotion Techの開発チームでは、カンバンを使う前はスクラム(Scrum)を使っていましたが、数ヶ月たってKPTの中でいくつかの課題が見えてきました。 当時の課題 開発メンバーが互いの開発領域について詳しくないため見積工程が難しい(ストーリーポイントを

    小さな開発チームでカンバンを使ってみた - EmotionTechテックブログ
    tanosikeizaigaku
    tanosikeizaigaku 2022/11/18
    ウチの会社でも組み込むとよさそう。かんばんは今の作業と次作業の見える化ができるのがいいな
  • SQL Server 「データベースは使用中なので、排他アクセスを獲得できませんでした」 で復元の失敗時の対処方法

    SQL Server 「データベースは使用中なので、排他アクセスを獲得できませんでした」 で復元の失敗時の対処方法 「データベースは使用中なので、排他アクセスを獲得できませんでした」 で復元の失敗 バックアップファイルからデータベースをリストアしようとした時に 「 データベース * の復元に失敗しました。 」 「 データベースは使用中なので、排他アクセスを獲得できませんでした。 」 のようにエラーが出て、復元できない時があると思います。 今回はデータベースが使用中で復元を失敗した時の対処方法です。 利用状況モニター(Activity Monitor) で利用状況を確認する 利用状況モニターを見ると、復元しようとしているデータベースを利用しているプロセスなどを確認することができます。 SQL Server Management Studio の オブジェクトエクスプローラでサーバーを右クリッ

    SQL Server 「データベースは使用中なので、排他アクセスを獲得できませんでした」 で復元の失敗時の対処方法
  • Google日本語入力でCapsLockキーで半角英数字切り替え[直接入力]

    tanosikeizaigaku
    tanosikeizaigaku 2022/09/18
    英字キーボード使う場合必須の設定
  • 業務委託テックリードと技術的負債 - LIVESENSE ENGINEER BLOG

    河野と申します。2018年8月からマッハバイトで業務委託(いわゆるフリーランス)として業務に携わっており、2022年6月から、テックリード(以降、TL)という立場となりました。 TLという言葉は広く使われていますが、実際に何をするのかは、会社や環境によってさまざま。 3ヶ月の振り返りがてら、ここに一例として公開してみようと思った次第です。 TL着任以前 Join当初はRailsエンジニアとしての働きを期待されており、最初の担当はマッハバイトiOS版用に、REST APIを開発することでした。 半年少しでその業務が一段落した後は、以下のことなどを担当してきました。 Rails製アプリケーションの機能追加、RubyRailsのUpdate ホストOSのUpdateに伴う、deploy環境の修正や、ライブラリなどのUpdate(オンプレ環境) マイクロサービスの中心に置きたいメッセージングサー

    業務委託テックリードと技術的負債 - LIVESENSE ENGINEER BLOG
    tanosikeizaigaku
    tanosikeizaigaku 2022/09/16
    "GL)およびエンジニアリングマネージャ(以下、EM)と打ち合わせを実施。「技術的負債が開発速度を遅くしているよね」という共通認識に至り" 本気で負債に向き合い初めて、動く人がいること。大事にしたい
  • コンピュータサイエンスの基礎を学ぶと何ができるようになるのか|masuidrive|note

    今日、Facebookに「プログラマだったら当然知ってるよね?という知識一覧」という記事で、「データ構造」や「計算量」から「理論計算機」など幅広くコンピュータサイエンス(CS)の基礎をプログラマ知っているべきという論が展開されています。 私は経営学部だったのでコンピュータサイエンスについて学校で習ったことはないのですが、高校の頃から趣味で色々調べていて、この中だとグラフ理論と機械学習系以外は大体理解しています。 「Web系の人って、新技術ばっかり追いかけてCSの基礎とかちゃんと学んでないよね」っていう話は他でも時々聞く気がします。 一つがWeb系のエンジニアは情報系の大学を出てない人も多いことと、実際あまり役に立つシーンがないのではないかと思います。 実際、CSの基礎ができると多くのエンジニアにとって何のメリットがあるのでしょう? 一番は「先の技術を読めるようになる」ことです。 ITの世界

    コンピュータサイエンスの基礎を学ぶと何ができるようになるのか|masuidrive|note
  • 44歳で大学を卒業しました - Gosuke Miyashita

    大学卒業が確定した pic.twitter.com/wEEXoUpCcY — Gosuke Miyashita (mizzy) (@gosukenator) March 13, 2019 以前 37歳で大学生になりました というエントリを書きましたが、7年かかってようやく卒業しました。在籍できる期間は最長8年間だけど、2年次から編入という形で入学したので、卒業できてもできなくても、今年度が最後でした。 仕事しながらの大学生活がどんな感じだったのか、振り返ってみたいと思います。 授業や単位について 授業は以下の3つの形態になっています。 スクーリング 実際にキャンパスに行って、2日あるいは3日間丸々授業を受ける形態。最終日は科目修得試験を受け、試験に合格できれば単位認定。 テキスト LMS(学習管理サイト)にあるサブテキストと、指定された教科書を読みながら学習を進めていく形態の授業。サブテキ

    tanosikeizaigaku
    tanosikeizaigaku 2022/09/13
    7年かけて通信で92単位をコツコツと... 帝京の通信課程はは、放送大学と違って公式の情報が少なく、書きっぷりもさらっとしているので、むむむとなったが こういう体験記事読むと、実態イメージ深まるなー
  • https://www.sc.ouj.ac.jp/center/tottori/news/upload/2021%E5%B9%B4%E5%BA%A6%20%E5%8D%92%E6%A5%AD%E7%A0%94%E7%A9%B6%E5%B1%A5%E4%BF%AE%E3%81%AE%E6%89%8B%E5%BC%95_2021_%E5%B1%A5%E4%BF%AE%E8%80%85%E7%94%A8.pdf

    tanosikeizaigaku
    tanosikeizaigaku 2022/09/13
    卒業研究を途中で断念するケースで往々に して見られるのは、自身の生活・職業体験からくる感覚や感想を絶対視してしまい、独りよがりにその感覚が正 しいことの証明を立派な研究と考えてしまう思い込みです
  • 放送大学と学位授与機構で情報工学の学位を取る(科目対応表付き)|lumpsucker

    はじめにこの記事では、放送大学で修得した単位を独立行政法人大学改革支援・学位授与機構に「積み上げ単位」として提出し、2022年8月に同機構から情報工学の学士(厳密は学士(工学)、専攻の区分:情報工学)を取得した際の記録についてまとめています。 執筆者のプロフィールとこれまでの経緯についてはこちらの記事をご覧ください。いわゆる文系SEだと思っていただければ大丈夫です。これまでに何か記事を書いていますので、この記事では学位授与機構関連の部分に絞ります。 なぜ情報工学の学位が欲しかったのか放送大学は1学部6コース構成となっており、どのコースを卒業しても(=例えば情報工学っぽい科目だけを取っても哲学っぽい科目だけを取っても)得られる学位は一律「学士(教養)」というものになります。せっかく情報科学・情報工学に全振りした履修をしたのに(教養)では少々寂しいということで、学位授与機構の「積み上げ単位」

    放送大学と学位授与機構で情報工学の学位を取る(科目対応表付き)|lumpsucker
    tanosikeizaigaku
    tanosikeizaigaku 2022/09/13
    学位授与機構という存在、知らなかった。こういった体験談を体系的にまとめてもらえるの、ありがたい。
  • 手動テストだけのソフトウェアは腐っていく: 柴田 芳樹 (Yoshiki Shibata)

    こので、著者のRobert Martinも、次のように述べています。 この10年間の間に この業界では多くのことがありました。1997年当時、テスト駆動開発などという言葉は誰も聞いたことがありませんでした。ほとんどの人にとって、単体テストというのは動作をひとたび『確認』したら捨ててしまうものでした。苦労してクラス メソッドを書き上げ、それらをテストするためのその場しのぎのコードをでっちあげていたのです。 『Effective Java』で有名なJoshua Blochは、このの中のインタビューで、次のような会話を行っています。 「デバッグの話をしましょう。あなたが追いかけた最悪のバグはどのようなものでしたか」 それに対して、Joshua Blochは、 「最初に勤めた会社で私が開発したソフトウェアですね。ソフトウェアのデバッグに1週間半費やしました」 という話をしています。 1週間半費

    手動テストだけのソフトウェアは腐っていく: 柴田 芳樹 (Yoshiki Shibata)
    tanosikeizaigaku
    tanosikeizaigaku 2022/09/10
    “次のことが(マネジメントから)要求されるようになります。 既存の機能のコードには一切変更を入れない。たとえ、(中略)共通化が既存の機能のコードの修正になるなら、共通化は行わない。”
  • Alp開発日誌 Day10 「開発手法史2020」 - 道産子エンジニア

    アルプの開発チームがどのように開発手法を試行錯誤しているかを残しておく。振り返ることでこれまでどのようなことを、どのようなチームで、どのようなアイデアで解決してきた*1のかを整理できる。 改めて振り返ってみると「開発手法に銀の弾丸などない」という一言に尽きるくらい、変化が激しい。それでもやってこれたのは、より良い開発にこだわり続ける情熱を持ちつつ、変化に寛容なチームだからだろう。 なお、これは古いドキュメントを辿った断片的な情報の集約であり正確ではないため、チームからのレビューなどでアップデートされる可能性が高い。 「誰かのために〜」とは考えていないが、あえて言うならば、これから入る未来の仲間へ向けていると言えるかもしれない。歴史文化として残るか、文章になる。文化は僕らが行動で示していくが、理由を知りたい人もいると思う。そんな人はこのブログを読むのをお勧めする。 これを読まなくても困らな

    Alp開発日誌 Day10 「開発手法史2020」 - 道産子エンジニア
    tanosikeizaigaku
    tanosikeizaigaku 2022/09/10
    開発プロセスを短期間で見直してカイゼンしまくっているの、すごい。 外部環境ではスクラムが流行りきっている中で、の意思決定ができるのもすごい