並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 54件

新着順 人気順

プライベートメソッドの検索結果1 - 40 件 / 54件

  • 現在時刻が関わるユニットテストから、テスト容易性設計を学ぶ - t-wadaのブログ

    この文章の背景について この文章はテスト容易性設計をテーマに 2013/11/26 に CodeIQ MAGAZINE に寄稿したものです。残念ながら CodeIQ のサービス終了と共にアクセスできなくなっていたため、旧 CodeIQ MAGAZINE 編集部の皆様に承諾いただき、当時の原稿を部分的に再編集しつつ、ライセンス CC BY(クリエイティブ・コモンズ — 表示 4.0 国際 — CC BY 4.0) で再公開いたしました。 旧 URL にいただいたブックマークとご意見はこちらです(これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE)。旧記事には本当に多くの反響をいただき、誠に感謝しております。 目次 この文章の背景について 目次 出

      現在時刻が関わるユニットテストから、テスト容易性設計を学ぶ - t-wadaのブログ
    • ドメイン駆動設計を導入するために転職して最初の3ヶ月でやったこと[DDD] - little hands' lab

      この記事は ドメイン駆動設計 Advent Calendarの記事です。 今年の9月にログラスというスタートアップに転職しました。 ログラスは元々DDDについて講師として勉強会をさせてもらっていた会社であり、DDD自体は社として取り組んでおりある程度進んでいました。ですが、講師ではなく中の人になったからこそできる色々な取り組みがあり、3ヶ月である程度形になりました。 本記事では、DDDを広めるための取り組みについて、極力再現性がある形を意識しつつ、ご紹介したいと思います。 入社時の状況 なにをしたか テストの話が多い理由 実施内容詳細 TDD Boot Campの@t_wadaさんの基調講演観賞会を行った Serviceクラスを1パブリックメソッドにした レイヤーごとのオブジェクトの依存関係を整理 レイヤーごとのテスト方針 クラス名の重要性 参照実装を作成した 「責務」と「テスト」の重要性

        ドメイン駆動設計を導入するために転職して最初の3ヶ月でやったこと[DDD] - little hands' lab
      • オブジェクト指向プログラミング -- 1兆ドル規模の大失敗

        CodeIQのブログより。🤔 なぜ、OOPから移行する時なのか Ilya Suzdalnitski OOPは、多くの人にコンピューターサイエンスの重要資産と考えられています。コード構成(code organization)に対する究極のソリューション。すべての問題の終焉。私たちのプログラムを書くための唯一の本当の方法。自分自身をプログラムするという真なる唯一神から私たちに授けられました… それまでは、そうではなく、抽象化の負担、そして無差別に共有されるミュータブルなオブジェクトの複雑なグラフによって、人々は屈し始めています。現実世界の問題を解決するのではなく、「抽象化」と「デザインパターン」について考えるのに貴重な時間と頭脳が費やされています。 非常に著名なソフトウェアエンジニアを含め、多くの人々がオブジェクト指向プログラミングを批判してきました。驚くことに、OOP自身の発明者でさえ、今

          オブジェクト指向プログラミング -- 1兆ドル規模の大失敗
        • 「スタートアップだからテストを書かない」は正しいか - An Epicurean

          スタートアップのCTOクラスの人がたまにそういうことを言っているのを聞くことがあります。もしくは「スピード優先だからテストを書かない」等です。 それは真ではなく、言ってしまえば、未熟だからテストを書「け」ない、のではないでしょうか。ただ、スタートアップという言葉に未熟であるという意味が含まれているのであれば「スタートアップだからテストを書かない」という問は真になるかも知れません。スタートアップは得てして未熟なものだし、それでも良いからです。 テストを書かないというジャッジをするのは構いません。でもそれは、スタートアップだからでもスピード優先だからでもない。自分達が未熟だからで、そこには向き合うべきだと考えます。状況のせいにするのではなく、徹底的に自分ごと化する。それがスタートアップに求められる姿勢です。少なくとも技術のトップが自分たちの技術力に向き合わないのはまずいでしょう。 「スタートア

            「スタートアップだからテストを書かない」は正しいか - An Epicurean
          • プライベートメソッドのテストは書かないもの? - t-wadaのブログ

            この文章の背景 この文章はプライベートメソッドのテストを書くべきか否かに関する knsmr さんのご質問に対して 2013/03/13 に QA@IT で回答したものです。残念ながらQA@IT のサービス終了(2020/02/28)と共にアクセスできなくなってしまったため、運営を行っていたアイティメディア株式会社様、開発を行っていた永和システムマネジメント様、そして質問をされた knsmr さんに許可とご協力をいただき、当時の回答をサルベージしてブログに転載する運びとなりました。 プライベートメソッドのテストはよく議論になるテーマですので、当時の回答を再編集し、knsmr さんのご質問も含め、ご利用いただきやすいライセンス CC BY(クリエイティブ・コモンズ — 表示 4.0 国際 — CC BY 4.0) で公開いたします。 目次 この文章の背景 目次 knsmr さんのご質問 私の回

              プライベートメソッドのテストは書かないもの? - t-wadaのブログ
            • ユニットテストをGitHub CopilotとChatGPT使って書いてみたらやばかったです | DevelopersIO

              GitHub Copilotとの単体テストがやばい。ChatGPTが書いてくれるテストもすごい。もうこれらがない時代には戻れないような気がします。 こんにちは。AWS事業本部コンサルティング部に所属している今泉(@bun76235104)です。 みなさんユニットテスト書いてますか? 昨今AIがダミーデータを書いてくれたり、ユニットテストそのものを書いてくれたりと技術の進歩がすごいですね。 私はリファクタリングが好きですが、リファクタリングをする前に絶対に必要なもの。 そうテストですね。 今回私がテストを後回しにしてしまった以下のOSSについてGitHub CopilotとChatGPTのそれぞれの力を借りながら、テストを書いてみました ※ これは以前私が始めたプロジェクトであり、OSSとして公開されているので学習に使われても問題のないコードです。 なお、GitHub Copilotの料金や

                ユニットテストをGitHub CopilotとChatGPT使って書いてみたらやばかったです | DevelopersIO
              • プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ

                技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 去年の記事「プロと読み解く Ruby 2.6 NEWS ファイル」に続き、今年も本日 12/25 リリース予定の Ruby 2.7 の NEWS ファイルの解説をしてみようと思います。NEWS ファイルとは何か、というのは去年の記事を見て下さい。 実は最近、NEWS ファイルを読みやすくしよう、と例を入れたりしていて、以前のものに比べて読みやすくはなっています(英語だけど)。記事中のコードも、NEWS ファイルから引用しているものがあります。本記事では、変更の解説に加え、執筆者らが開発に携わっているということを活かして、「なぜ変更

                  プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ
                • 大企業向けビジネスの信頼を支えるために半年かけてゼロからユニットテストを充実させたら、開発者も幸せになった 工夫5選 - MonotaRO Tech Blog

                  初めまして、購買ソリューショングループ 運用・機能改善チームの稗田です。当社では自社で運営しているECサイト(モノタロウドットコム)から直接商品をご購入いただく他に、他社の購買システムと連携して商品をご購入いただくシステム(大企業連携システム)があります。こちらの大企業連携システムには多くのバッチ処理があるのですが、これまで自動テストがありませんでした。今回はバッチ処理の障害をきっかけに短期間でユニットテストを充実させるためにした工夫や学んだことをお話しします。 ユニットテストを作らなければいけないと思ったきっかけ 障害発生 担当システムやチームの状況 チームの1人として感じたこと お客様やステークホルダーの信頼を取り戻すために ユニットテストを短期間で作成するためにやった工夫 工夫1: 外部協力会社の力を借りる 工夫2: 課題や目的、ルールをドキュメントで共有する 工夫3: リファレンス

                    大企業向けビジネスの信頼を支えるために半年かけてゼロからユニットテストを充実させたら、開発者も幸せになった 工夫5選 - MonotaRO Tech Blog
                  • リファクタリングを文化にする 〜組織が技術的負債と向き合うワークショップ〜 - MonotaRO Tech Blog

                    皆さんこんにちは。 CTO-Office の香川とEC開発-Bグループの竹原です。 11/28に 和田卓人氏(id:t-wada)を講師としてお招きしてテストとリファクタリングのためのワークショップを開催いたしました。 技術者正社員のうちプログラミングをすることの多いメンバー全体の約1/3にあたる総勢53名が参加しての開催となりました。 本記事ではまず第一弾としてワークショップの概要や目的、全体の流れについて簡単にご紹介いたします。 また第二弾(2024年1月公開予定)では、運営とワークショップの問題の作問に関わったメンバーにそこでの学びや実践について紹介いただきます。 開催に至った経緯とMonotaRO DOJO MonotaRO DOJO とは 社内の課題とワークショップの目的 開催経緯 ワークショップの全体像と開催までの段取り ワークショップの全体像 概要 タイムテーブル 開催までの

                      リファクタリングを文化にする 〜組織が技術的負債と向き合うワークショップ〜 - MonotaRO Tech Blog
                    • 開発チームにおけるバックエンドテストのガイドライン策定の軌跡をふりかえる

                      はじめに 株式会社マイベストでバックエンドエンジニアをしています、井上周(@isaka1022)です。 マイベストの開発組織において、2023年度の後半にかけて、バックエンドのテストの書き方の方針、ガイドラインの策定のプロジェクトを担当しました。 そもそもどのようにテストの書き方を決めるのか、また、ガイドラインとして機能させるためにエンジニア全員で共通認識を持てるものに仕上げるか、など考えることが多かったのですが、なんとか形にすることができたので今回はどのようにガイドラインを策定したか、その背景や経緯をお伝えできればと思います。 ガイドライン策定の背景 mybestのアーキテクチャには近年、Ruby on Railsに加えてNext.jsが導入されました。 それに伴い、バックエンドのテスト環境に大きな変化がありました。 それまでもテストの書き方のルールが決まっていなかったこともそうですが、

                        開発チームにおけるバックエンドテストのガイドライン策定の軌跡をふりかえる
                      • Lambdaのテスト領域に関する技術共有会を開催しました | DevelopersIO

                        はじめに CX事業本部の佐藤智樹です。 今回は先月中頃に実施したLambdaのテスト領域に関する技術共有会の資料と当日にいただいた意見を紹介します。技術共有会自体はお客様含め5人ほどで実施予定でしたが、社内の方を誘ったところ15人程と大人数でディスカッションしながら知識を深めました。有意義な時間となったのでブログで共有します。 本記事はLambdaに対してどのようなテストをすべきか、Lambdaでこれからテストを書くがどうやれば良いか悩んでいる方などは参考になるかと思います。いくつか紹介するテストパターンのメリット/デメリットもあげるので、テスト選定の上で参考にしてください。 例となる題材がなければ抽象的な話ばかりになり分かりづらくなるので、今回は以下のIoTデータ収集システムをベースにどうテストを書いていくか検討します。IoTデバイスからきたデータをRDSに保存するシステムです。色々書い

                          Lambdaのテスト領域に関する技術共有会を開催しました | DevelopersIO
                        • 効率的にリファクタリングを進めるための下準備教えます - MonotaRO Tech Blog

                          はじめに ※ (2024/03/14 16:33) 「インテグレーションテストの気軽な実行・変更ができない」節にて、データのクリーンアップを teardownで行うよう修正 EC開発-B グループの岡崎と EC開発-A グループの菊川です。2人とも普段は MonotaRO の EC サイトの開発に従事しています。 今回は、昨年11月に開催した、テストとリファクタリングのためのワークショップの中で行ったライブコーディングの準備をするにあたって困ったことについて記載します。 ライブコーディングでは、参加者全員の前で実際のプロダクトのソースコードをリファクタリングする、ということにし、それにあたって研修の運営メンバーでリファクタリングに取り組んでみました。ただ闇雲にリファクタリングするのではなく、研修では参加者に「どのような流れや考え方でリファクタリングをするか」を理解してもらえるように、運営メ

                            効率的にリファクタリングを進めるための下準備教えます - MonotaRO Tech Blog
                          • JavaScriptデザインパターン入門 - Qiita

                            1. はじめに JavaScriptデザインパターンは、JavaScriptを使ってプログラムを書くときによく出くわす問題を解決するためのガイドです。これらのパターンの背後にある考え方を理解することで、自分の問題に適用することができます。また、これらのパターンが自分のコードに役立つ場合を見つけることもできます。 2. モジュールパターン モジュールパターンは、JavaScriptのモジュールシステムの一部で、データを保護する方法を提供します。これは、モジュール内のプライベートなデータと動作を保護し、一方で公開APIを提供する方法です。これにより、プライベートとパブリックのアクセスレベルを持つ自己完結型のモジュールオブジェクトを作成することができます。 これは、JavaやC++のような言語でクラスにアクセス修飾子を使用するのに似ています。 JavaScriptでは、クロージャを使用してモジュ

                              JavaScriptデザインパターン入門 - Qiita
                            • AIエンジニアが気をつけたいPython実装のノウハウ・コツまとめ - Qiita

                              本記事では、データサイエンティスト、AIエンジニアの方がPythonでプログラムを実装する際に気をつけたいポイント、コツ、ノウハウを私なりにまとめています。 AIエンジニア向け記事シリーズの一覧 その1. AIエンジニアが気をつけたいPython実装のノウハウ・コツまとめ(本記事) その2. AIエンジニアが知っておきたいAI新ビジネス立案のノウハウ・コツまとめ 2020年4月に書籍を、出版しました。 【書籍】 AIエンジニアを目指す人のための機械学習入門 実装しながらアルゴリズムの流れを学ぶ(電通国際情報サービス 清水琢也、小川雄太郎 、技術評論社) https://www.amazon.co.jp/dp/4297112094/ 本投稿は、上記の書籍に書ききれなかった 「AIエンジニアが、Pythonでプログラムを実装する際に気をつけたいことのまとめ」 です。 本記事の内容は、あくまで筆

                                AIエンジニアが気をつけたいPython実装のノウハウ・コツまとめ - Qiita
                              • 我々はConcernsとどう向き合うか - おもしろwebサービス開発日記

                                この文章は先日開催された大阪Ruby会議02での登壇内容Concerns about Concernsをブログエントリにしたものです。書いている内容は登壇内容とだいたい同じですが完全一致ではなく、構成を変更したり喋っていない情報を足したりしてます*1。 大阪Ruby会議02に出席していない方でもスライドを読めば大体の内容を把握できると思いますが、これだと細かいニュアンスは伝えられない(し、この手の話はその細かいニュアンスが大事だったりする)のでちゃんとブログエントリにしておこうと思ったのでした。 意見がある人はこちらのスレに書いてもらえると嬉しいです(\( ⁰⊖⁰)/) Concernsとはなにか Concernsという概念は、Rails 4.0から導入されました。具体的にはrails newしたときに生成されるファイルたちの中に app/models/concerns app/contr

                                  我々はConcernsとどう向き合うか - おもしろwebサービス開発日記
                                • else を禁止してはいけない - Qiita

                                  複雑なプログラムを書いてしまうのを避けるために、if 文の else を避ける制約を設けてプログラミングしてみましょう、というアプローチがあります。これはあくまで、ThoughtWorks アンソロジーに書かれていた、ある種のプログラミング思考のトレーニング方法のひとつにすぎないものです。 しかし、権威だからか、あるいは、あまりコードを書かない人がわかりやすいと感じるからか、プロダクションコードの規約に使おうとする誤った考えがあります。そんなことをすると、コード品質は下がります。 else 禁止制約というのは、「これまで if-else で記述していた多くのコードは、実は、生成するオブジェクトの多態性によって、分岐の前倒しが可能になるものだったのか」という認識を得られれば、すぐに忘れるべきルールです。 ある実在の OSS コードを例に説明します。 https://github.com/xr

                                    else を禁止してはいけない - Qiita
                                  • ユニットテストのための言語設計 - gfnweb

                                    ユニットテストとは,おそらくご存知の通り各コンポーネントが単独で操作的に意図通りの振舞いをしているかを具体例により確認する営みである. 「ユニットテストはどのように書かれるべきか」といった議論が為されるとき,もちろん言語横断的な議論が中心となるものの,しばしば特定の計算機言語やその処理系の性質を所与とした議論が含まれやすい.だが,言語仕様や処理系が天から降ってきたものではない以上,原理的にはむしろ言語こそが目的に応じて適切に設計されるべきものだ. したがってここでは,必ずしも明瞭な結論に到達するわけではないものの,「ユニットテストとは普遍的に何をするための仕組みなのか,そしてユニットテストをやりやすく意義のあるものにするためには計算機言語はどんな設計であるべきなのか」ということに関して考え,大枠のアイディアを練ってみたい.ここで触れている内容の一部はおそらくソフトウェア工学の文脈でとっくに

                                    • 第8回 脆いテスト ~継続的な変更と改善を阻むテストの原因と対策~ | gihyo.jp

                                      本連載の主なテーマは、信頼できる実行結果にできるだけ短い時間でたどり着く自動テスト群の構築です。連載の区切りとして、なぜ自動テストを書いてメンテナンスしていくのか、そしてそれに立ちはだかる「脆いテスト」(⁠fragile test)について整理します。 自動テストを書く動機 自動テストを書く動機には、不具合混入を防止する、問題箇所の絞り込みを容易にする、動く仕様書やサンプルになるなどいろいろありますが、最大の動機は、変化を抱擁し、ソフトウェアの成長を持続可能なものにすることだと筆者は考えています。 ソフトウェアを取り巻く世界は変わりました。ソフトウェアは世界を飲み込み、事業と一体化しました。事業を取り巻く市場もエンドユーザーのニーズも刻々と変化する時代においては、より速く、より安全に変化する力が求められます。コードを変更しなければ動き続けることが期待できる時代ではもうなく、決められたものを

                                        第8回 脆いテスト ~継続的な変更と改善を阻むテストの原因と対策~ | gihyo.jp
                                      • AIエンジニアが気をつけたいPython実装のノウハウ・コツまとめ - Qiita

                                        本記事では、データサイエンティスト、AIエンジニアの方がPythonでプログラムを実装する際に気をつけたいポイント、コツ、ノウハウを私なりにまとめています。 AIエンジニア向け記事シリーズの一覧 その1. AIエンジニアが気をつけたいPython実装のノウハウ・コツまとめ(本記事) その2. AIエンジニアが知っておきたいAI新ビジネス立案のノウハウ・コツまとめ 2020年4月に書籍を、出版しました。 【書籍】 AIエンジニアを目指す人のための機械学習入門 実装しながらアルゴリズムの流れを学ぶ(電通国際情報サービス 清水琢也、小川雄太郎 、技術評論社) https://www.amazon.co.jp/dp/4297112094/ 本投稿は、上記の書籍に書ききれなかった 「AIエンジニアが、Pythonでプログラムを実装する際に気をつけたいことのまとめ」 です。 本記事の内容は、あくまで筆

                                          AIエンジニアが気をつけたいPython実装のノウハウ・コツまとめ - Qiita
                                        • 銀座Railsで「Railsアプリの設計」というタイトルで発表しました #ginzarails - アジャイルSEの憂鬱

                                          12/13(金)にあった銀座Rails#16で登壇しました。 スライド speakerdeck.com 話したかったこと 1〜3年目のRailsエンジニアに参考になる話がしたい 7年やって私が覚えたことは、たぶん何かしら参考になるだろう 来週の仕事ですぐ参考になる話がしたかった 懇親会で他のシニアエンジニアの考えを聞きたかった 補足: なぜクラス内クラスを使うのか? スライドの最後の方が説明不足だったので、ブログで補足を書いておきます。 👮‍♀️RuboCop の取締りは厳しい RuboCop の標準ルールを守ろうとすると、以下を行うことになる。 行数が長くなると、変数を抽出する 変数代入によって AbcSize が増えるので、プライベートメソッドを抽出する メソッド追加によって ClassLength が増える ? 対策方法は2つある Module を抽出する Class を抽出する

                                            銀座Railsで「Railsアプリの設計」というタイトルで発表しました #ginzarails - アジャイルSEの憂鬱
                                          • Ansible Community、オープンソースのIT自動化ツール「Ansible 4.0.0」をリリース

                                            2021/05/25 11:30 今回発表されたリリースにつきまして、当初「米Red Hatが、『Ansible 4.0.』のファイナル版を、5月19日(現地時間)にリリース」としていましたが、今回リリースされたバージョンは、「コミュニティ版」のリリースとなります。訂正しお詫び申し上げます。(編集部) 「Ansible 4.0.0」は、ansible-core packageの新たなメジャーアップデートである「Ansible Core 2.11」をベースにしており、プレイブック言語とコマンドラインプログラムに対する下位互換性のない変更が含まれている可能性がある。 おもな変更点としては、コレクションを--forceフラグを使用することなく、新しいバージョン要件で再インストールできるようになったほか、AnsibleModuleにおいてArgumentSpecValidatorクラスを使って引数

                                              Ansible Community、オープンソースのIT自動化ツール「Ansible 4.0.0」をリリース
                                            • Corinna in the Perl Core[翻訳] - Blog::kobaken

                                              この記事は、perl 5.38 から導入された class featureのデザインをリードしているOvidの記事を翻訳したものです。 ovid.github.io Corinna in the Perl Core! チーム 他の言語 私たちが失ったもの カプセル化を破ることはできない 多重継承はしない blessされたクラスから継承しない 私たちが得たもの The Principle of Parsimony(思考節約の原理) 結論 Corinna in the Perl Core! 長年に渡る、痛みを伴うプロセスでしたが、Perl v5.38のリリースで、Corinnaの一部がPerlのコアに初めて追加されました。詳しく知らない人向けに補足すると、CorinnaはPerlのコアに新たなオブジェクトシステムを追加するプロジェクトです。メモリ消費、パフォーマンス、エレガンスさが改善されたコ

                                                Corinna in the Perl Core[翻訳] - Blog::kobaken
                                              • 『WEB+DB PRESS Vol.113』の「体験 ドメイン駆動設計 モデリングから実装までを一気に制覇」を読んだ - 30歳からのプログラミング

                                                ドメイン駆動設計(以下 DDD)に関心があるので読んでみた。 私のような初心者にも分かりやすい内容だったので、DDD に興味を持ったけど挫折した、という人は読んでみるといいと思う。 gihyo.jp DDD に関心を持ったキッカケはよく覚えていて、今年の2月。 SPA のフルリニューアルを一人でやることになり、設計や技術選定について考えていた。 既存の SPA の出来があまりにもひどくて、毎日がとにかく苦痛で不愉快だった。その体験があったため、自分はちゃんとしたモノを作ろうという気持ちが強かった。 そこらへんの話は以下の記事にも書いた。 numb86-tech.hatenablog.com その時期に出会った記事のひとつが、これ。 medium.com この記事の内容そのものも参考になったが、この記事で触れられている DDD にも関心を持った。 詳しくは分からないが、DDD というものを使

                                                  『WEB+DB PRESS Vol.113』の「体験 ドメイン駆動設計 モデリングから実装までを一気に制覇」を読んだ - 30歳からのプログラミング
                                                • Pony言語を触ってみよう前編 - 虎の穴開発室ブログ

                                                  こんにちは。虎の穴ラボのY.Fです。 突然ですが、自分の趣味の一つとしてマイナーな言語やフレームワークに触るというのを持っていたりします。 その一環として、今回はPonyと呼ばれるプログラミング言語について紹介して見たいと思います。 ドキュメントはこちら www.ponylang.io 本当は一回の記事に収めるつもりでしたが思いの外長くなったので前編後編としています。(後編は後日) Pony言語とは 公式ドキュメントによると、以下の特徴がある言語とされています。 オブジェクト指向、アクターモデル、静的型付け 型安全 数学的証明によって担保される型安全 メモリ安全 タングリングポインタやバッファオーバーフローが起きない 例外安全 実行時例外が存在しない データ競合フリー、デッドロックフリー ロックやアトミック系操作が存在せず、型システムによってコンパイル時にデータ競合が無いことが保証される

                                                    Pony言語を触ってみよう前編 - 虎の穴開発室ブログ
                                                  • Goで構造体の非公開フィールドにアクセスする方法 - stop-the-world

                                                    Go の 構造体 (struct) におけるフィールドは、フィールド名が小文字始まりであれば 非公開フィールド (unexported field) となり、パッケージ外からアクセスすることができません(参考: Exported identifiers - The Go Programming Language Specification)。 組織内で管理しているソースコードなら単に修正してしまえばよいのですが、外部のライブラリなどの場合、変更してもらうのは大変です。 このような、やむを得ない理由で非公開フィールドを参照したい場合、ちょっとした工夫が必要になります。 試してみたところ、以下の2つの方法で非公開フィールドを取り出すことができました。 reflect.ValueOf と unsafe.Pointer を使う方法 go.mod でモジュールを replace する方法 1. re

                                                      Goで構造体の非公開フィールドにアクセスする方法 - stop-the-world
                                                    • AIエンジニアが気をつけたいPython実装のノウハウ・コツまとめ - Qiita

                                                      本記事では、データサイエンティスト、AIエンジニアの方がPythonでプログラムを実装する際に気をつけたいポイント、コツ、ノウハウを私なりにまとめています。 AIエンジニア向け記事シリーズの一覧 その1. AIエンジニアが気をつけたいPython実装のノウハウ・コツまとめ(本記事) その2. AIエンジニアが知っておきたいAI新ビジネス立案のノウハウ・コツまとめ 2020年4月に書籍を、出版しました。 【書籍】 AIエンジニアを目指す人のための機械学習入門 実装しながらアルゴリズムの流れを学ぶ(電通国際情報サービス 清水琢也、小川雄太郎 、技術評論社) https://www.amazon.co.jp/dp/4297112094/ 本投稿は、上記の書籍に書ききれなかった 「AIエンジニアが、Pythonでプログラムを実装する際に気をつけたいことのまとめ」 です。 本記事の内容は、あくまで筆

                                                        AIエンジニアが気をつけたいPython実装のノウハウ・コツまとめ - Qiita
                                                      • perlcriticとのつきあい方 - 私が歌川です

                                                        はじめに こんにちは。perlcriticの話をします。perlcriticに関するまとまった日本語の情報が乏しいなと感じたので、アドベントカレンダーの記事として書くことにします。 これは Perl Advent Calendar 2020 - Qiita 4日目の記事です。3日目は hkoba さんで zsh 上で .pm のメソッド名を補完する話 - hkoba blog でした。 はじめに perlcriticとは 設定をする .perlcriticrc 例 設定項目 severity program-extensions ポリシーごとの設定 Subroutines::ProhibitExplicitReturnUndef (severity = 5) ValuesAndExpressions::ProhibitConstantPragma (severity = 4) Values

                                                          perlcriticとのつきあい方 - 私が歌川です
                                                        • JavaScriptクロージャーの仕組みとスコープ:関数型プログラミングにおける重要な概念の解説 - deve.K's Programming Primer - プログラミング初心者のための入門ブログ

                                                          クロージャー(Closure)の概念は関数型プログラミングにおいて重要であり、JavaScriptの面接でよく質問される事もあります。 どこでも使用されていますが、クロージャーは把握するのがとても困難でもあります。 まず、クロージャーを学ぶまえに(スコープ)および(レキシカルスコープ)の基本を学ぶ必要があります。 そして、前提としてJSの変数および関数に精通しているかご確認下さい。 この記事では、JavaScriptクロージャーの仕組みおよびJavaScriptスコープについて解説します。 スコープ スコープチェーン レキシカルスコープ JSのクロージャーとは? レキシカルスコープとクロージャーの違い JSでのクロージャの利点と欠点 最後に スコープ JavaScriptのスコープ(Scope)は、変数や関数がどこからアクセス可能かを定義する仕組みです。 変数や関数がどこで宣言されたかによ

                                                            JavaScriptクロージャーの仕組みとスコープ:関数型プログラミングにおける重要な概念の解説 - deve.K's Programming Primer - プログラミング初心者のための入門ブログ
                                                          • 改めて振り返る Fat Controller / Fat modelとの戦い - masa寿司の日記

                                                            先週の銀座Rails #15で @yalabさんがserviceクラスに関するネタで登壇していました。 serviceクラスをやめようサブクラスを使おう from よしだ あつし www.slideshare.net このスライドのP.16, P.17で「なぜserviceクラスを使うようになったか、それは fat modelをなんとかするため」というような記載があります。serviceクラスに関する話は定期的に出ていますが、このスライドにも出ているように「なぜserviceクラスが流行ったのか」という話もよく聞く話のような気がします。 私の知る限り、serviceクラスが(少なくともRailsに関する日本語圏)で流行したのは 7 Patterns to Refactor Fat ActiveRecord Models がきっかけではなかったかと思います。 codeclimate.com

                                                              改めて振り返る Fat Controller / Fat modelとの戦い - masa寿司の日記
                                                            • プライベートメソッドをテストすべきか

                                                              「すべきでない」というのがたぶん多数派。テストすべきでない理由としてだいたい次の理由があげられる。 プライベートなメソッドや関数をテストする必要は無いと考えています。プライベートなメソッドは、実装の詳細であるからです。 多くの場合、そのクラスのパブリックメソッド経由でプライベートメソッドのテストも同時に行えます。 プライベートメソッドのテストは書かないもの? - t-wadaのブログ ほとんどの場合、プライベート メソッドをテストする必要はありません。 プライベート メソッドは実装の詳細です。 プライベート メソッドがある場合は、パブリック メソッドを見つけて、そのメソッドに対してテストを記述します。 単体テストを記述するためのベスト プラクティス - .NET | Microsoft Docs 「プライベートメソッドはテストするな」と強く主張されるのは、ケント・ベックの影響もあるかもしれ

                                                                プライベートメソッドをテストすべきか
                                                              • neue cc - .NET 8 UnsafeAccessor を活用したライブラリ PrivateProxy を公開しました

                                                                .NET 8 UnsafeAccessor を活用したライブラリ PrivateProxy を公開しました 2023-09-21 PrivateProxyというライブラリを公開しました。つまるところ、privateフィールド/プロパティ/メソッドにアクセスするライブラリなのですが、.NET 8 のUnsafeAccessorという新機能を活用することでNo Reflection、ハイパフォーマンス、AOTセーフになっています。 Cysharp/PrivateProxy もちろん .NET 8 でしか動きません!ので、.NET 8が正式リリースされた頃に思い出して使ってみてください。エクストリームな人は今すぐ試しましょう。 雰囲気としては、privateメンバーにアクセスしたい型があったとして、[GeneratePrivateProxy(type)]をつけた型を用意します。 using Pr

                                                                • Managed Code Strippingの挙動の検証と2020 LTSで利用できる新しいアノテーション属性の紹介

                                                                  HOME ブログ ネイティブ , C# Managed Code Strippingの挙動の検証と2020 LTSで利用できる新しいアノテーション属性の紹介 Unityエンジニアの向井です。 この記事では、Unityのアプリビルド時の最適化のひとつであるManaged Code Strippingについてその基本的な機能の紹介と、実際にビルド後のクラス情報を出力しながらその挙動について確認します。また、このManaged Code Strippingによって発生する問題の1例と、それを解決する方法についても触れます。 記事後半では、Unity 2020 LTSで導入された新しいManaged Code Strippingのアノテーション属性と、これを用いてどのようにマークを行えるのかについて紹介します。 ※ この記事で紹介する手法やツールの悪用はお控えください。 Managed Code

                                                                    Managed Code Strippingの挙動の検証と2020 LTSで利用できる新しいアノテーション属性の紹介
                                                                  • Angular でテストコードの書き方を纏めました

                                                                    否定形も使えて、その場合はnot.MatcherとすればOKです。 expect(xxx).not.ToEqual(yyy)サービスやパイプのテストは簡単ですが、コンポーネントのテストが大変です。 デフォルトで用意されているapp.component.spec.tsファイルを見るとよくわかると思います。 beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [ AppComponent // ここにテストコンポーネントを追加する ], }).compileComponents(); }));beforeEachメソッドでTestBed.configureTestingModuleメソッドでテストコンポーネントを定義します。 TestBed.createComponentメソッド このメソッドでコンポー

                                                                      Angular でテストコードの書き方を纏めました
                                                                    • 今週のはてなブログランキング〔2020年4月第2週〕 - 週刊はてなブログ

                                                                      はてなブックマーク数による人気記事のランキング。4月5日(日)から4月11日(土)〔2020年4月第2週〕のトップ30です*1*2。 # タイトル/著者とブックマーク 1 4/7 ランサーズ騒動の真実 - UCHIMALL’s blog by id:UCHIMALL 2 壊滅度別の業界リスト(新型コロナ編) - Chikirinの日記 by id:Chikirin 3 緊急事態になった明日も、不要不急の仕事で外出する - やしお by id:Yashio 4 スガシカオの炎上した理由が意味不明 - オトニッチ?音楽の情報.com? by id:houroukamome121 5 「Googleスライド」で作る資料を、ちょっと良く見せるコツまとめ - Yunicode by id:yunico_jp 6 プライベートメソッドのテストは書かないもの? - t-wadaのブログ by id:t-

                                                                        今週のはてなブログランキング〔2020年4月第2週〕 - 週刊はてなブログ
                                                                      • ActiveRecordモデルのカラムを消すときにignored_columnsが必要な理由 - Progate Tech Blog

                                                                        自己紹介 株式会社Progateサーバーサイドエンジニアのもりたんざにあです。 好きなものは卓球と筋トレです。 業務でignored_columnsの必要性や、内部で何をしているかについて調べたので、その過程でわかったことを紹介しようと思います。 前提条件 この記事の内容は https://github.com/rails/rails/tree/5-2-stable のソースコードを前提としています。 ignored_columnsとは 公式ドキュメンテーション : https://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-i-ignored_columns 「このカラムがデータベースのテーブルにあっても、無視してね!」とRailsのモデルに伝えるために、ActiveRecor

                                                                          ActiveRecordモデルのカラムを消すときにignored_columnsが必要な理由 - Progate Tech Blog
                                                                        • 神コントローラーにテスト駆動開発で機能追加 - Mitsuyuki.Shiiba

                                                                          TDDBC オンラインの基調講演の録画を見た。とても面白かった。和田さんのセッションやスライドは何度も見て勉強してるので、それをひとつずつ再確認しながら見ることができて、とても良かった。話の流れが分かりやすくてすごいなー。 #tddbc みるー TDD Boot Camp 2020 Online 1 基調講演/ライブコーディング https://t.co/g4AkCkr429— Mitsuyuki Shiiba (@bufferings) August 8, 2020 最近実際にやったテスト駆動開発 その録画を見ながら、最近自分がテスト駆動開発で機能追加をしたことを思い出してた。今日は、それをだらだらと書いてみようと思う。プライベートメソッドに対してテストを書いてたりするのが、なんか泥臭くて面白いかなと思って。 背景 自動テストが全くないプロダクト God コントローラー(1000行以上あ

                                                                            神コントローラーにテスト駆動開発で機能追加 - Mitsuyuki.Shiiba
                                                                          • 週刊Railsウォッチ(20191217後編)Ruby 2.7の変更点とパターンマッチング、依存性自動アップデートツール、Stack Overflowアンケート2019ほか|TechRacho by BPS株式会社

                                                                            2019.12.17 週刊Railsウォッチ(20191217後編)Ruby 2.7の変更点とパターンマッチング、依存性自動アップデートツール、Stack Overflowアンケート2019ほか こんにちは、hachi8833です。平成Ruby会議01の余韻がまだ残っています🔔。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください 今回も前編に続き、TechRacho記事でもお馴染みのWingdoor様による福岡エンジニアカフェでのイベントに東京からリモート接続する形のつっつき会を元にお送りいたします。 イベント: 週刊Railsウォッチ公開つっつき会@福岡

                                                                              週刊Railsウォッチ(20191217後編)Ruby 2.7の変更点とパターンマッチング、依存性自動アップデートツール、Stack Overflowアンケート2019ほか|TechRacho by BPS株式会社
                                                                            • Draperソースコードリーディング - エニグモ開発者ブログ

                                                                              初めまして、19年新卒webエンジニアの平井蒼大です。 弊社では、昼休憩時間を使って、最近勉強したこと、 興味があること、最近行った勉強会やカンファレンスの内容などをLT形式で自由に発表するHacker’s Delightという場が設けられています。 私も先日、「Draperのソースコードリーディング」というお題で発表しましたので、その内容を掲載したいと思います。 動機 今回、Draperのソースコードリーディングに至った理由は以下の二つです。 Draperの仕組みを知りたい。 Ruby, Ruby on Railsについての知識を増やす。 Draperとは DraperはPresenter層を提供するgemです。 draperを使うことで以下の利点があります。 モデルの肥大化を防ぐ グローバル空間ににヘルパーメソッドが追加されることを防ぐ。 理解する部分 今回、ソースコードリーディングを

                                                                                Draperソースコードリーディング - エニグモ開発者ブログ
                                                                              • Railsでサービスクラスを書く時に知っておきたいこと - Qiita

                                                                                はじめに 普段、Ruby on Railsで開発しています。サービスクラスは元々Railsにないクラスですが、ファットコントローラやファットモデルを解消したりするために導入することがあると思います。 上手く使えばファットなコードをスリムにしてくれる便利なサービスクラスですが、一方でこんなサービスクラスはイヤだなと思うこともあります。 どんなサービスクラスがイヤだと思うのか、どうしてそうなるのか、どうすれば防ぐことができるのか、といったことをポエムとしてお伝えしたいと思います。 サービスクラスとは? chatGPTによると 「ビジネスロジックやデータ処理、外部APIなどの機能を提供するクラスのことです。サービスクラスは、コントローラーから呼び出されることが多く、ビジネスロジックを分離することで、アプリケーションのメンテナンスや拡張性を高めることができます。」 Railsの標準にはないので、a

                                                                                  Railsでサービスクラスを書く時に知っておきたいこと - Qiita
                                                                                • 2024-05-12のJS: Headless UI v2.0 for React、Astro v4.8、外部パッケージに依存せずにNode.jsで使えるようになった機能

                                                                                  JSer.info #692 - Headless UI v2.0 for Reactがリリースされました。 Headless UI v2.0 for React - Tailwind CSS Floating UIのanchor指定をサポート、Checkboxコンポーネント、Fieldsetコンポーネント、Comboboxがvirtual propsをサポートなどの変更が含まれています。 Astro 4.8がリリースされました。 Astro 4.8 | Astro 実験的な機能としてAstro Actions、Request Rewritingの追加が行われています。 また、パフォーマンスの改善やinjectRouteのバグ修正などの変更が含まれています。 Node.js の進化に伴い不要となったかもしれないパッケージたちという記事では、外部パッケージで提供されていた機能の一部がNode

                                                                                    2024-05-12のJS: Headless UI v2.0 for React、Astro v4.8、外部パッケージに依存せずにNode.jsで使えるようになった機能