並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 76件

新着順 人気順

コーディング規約 javaの検索結果1 - 40 件 / 76件

  • 日本の古き良きIT企業を退職して3年がたった

    3年前、世間一般にはメーカー系SIerとして知られている会社を退職した。ただ俺のポジションはパッケージソフト開発であり純粋なSIerとは異なる。 客ともSEとも会話せず、ひたすらドキュメントとプログラムを書く部署だ。といっても別にペーペーではなく主任クラスであり、 会社の業績がとてもよかったこともあり年収は1000万弱はあった。35歳。 これだけ見るととてもいい待遇に見えるだろう。でも耐えられないことがいっぱいあった。 Linuxで動くアプリなのにVMを動かすのも苦労する8GBしかメモリのないWindows PC、紙にコードを印刷して説明しないと納得しない品質保証部、 手作業で実施しExcelにチェックを付けていくテスト、jquery一つ使うのに3ヶ月かかる承認フロー、開発中にバグを一つ出すごとに ひたすら反省文を求める品質保証部と一緒になって詰めてくるマネージャー、常にコンパイルできない

      日本の古き良きIT企業を退職して3年がたった
    • 株式会社リクルート エンジニアコース新人研修の内容を公開します!(2023年度版)

      こんにちは! 2023年度エンジニア新卒の、吉田です。 株式会社リクルート 新卒エンジニアコースでは、部署への配属前に、BootCampと呼ばれる新人研修を行っています。 本日は2023年度の研修の内容を、実際に受講した新卒の立場から紹介させていただきます。 研修の内容については毎年反響をいただいていますが、今年度も一段と進化し、より充実した研修でした。 ページ下部に研修資料を公開していますので、ぜひ研修の雰囲気を感じ取っていただけると嬉しいです。 研修の概要 エンジニアコースの新人研修は、配属後にスピード感を持って成長できるようになることを見据え、 「さまざまな技術領域の講座を受け、興味関心を広げて、知らなかった好奇心に出会う」 「現場で求められる『仕事への取り組みスタンス』をつかむ」 「気軽に相談できる仲間(同期)をつくる」 の3点が目的とされています。 今年度は、入社前に行われたスキ

        株式会社リクルート エンジニアコース新人研修の内容を公開します!(2023年度版)
      • チームで機能設計するためのPlantUML標準化 | フューチャー技術ブログ

        はじめに現在所属しているプロジェクトではWebAPIやバッチ処理の設計の一環としてPlantUMLを利用しています。効率よく品質高くアウトプットを出すためには、プログラミング言語に対してコーディング規約があるように、UMLに対してもチームで設計するにあたり一定のルールを決める必要があります。 そこでプロジェクト内のPlantUMLを使用するうえでのガイドラインやルールをまとめる機会があり、せっかくなのでそれを記事化します。 記事のゴール シーケンス図設計におけるPlantUMLの標準化 必要最低限のルールだけに絞ってチーム設計の生産性と品質を上げる 記事の前提 ルールの想定の利用シーン: チームで大量生産する業務機能の処理フローを表現するために使う場合を想定。 また、この記事に記載されているルールはRDBを中心的に使用したAPI処理やバッチ処理等を念頭に置き決められたものです。 ルールの想

          チームで機能設計するためのPlantUML標準化 | フューチャー技術ブログ
        • より美しいコードを書くことに対する感情を失ってしまったのは衰えか成長か - まいくろ🍣きりみん

          昔:感情があった 元々ぼくはきれいなコードを書くことへのモチベーションが高かった。 プログラマーになったばかりの頃にリーダブルコードを読んで感動したというのもあるし、ちょうどその頃DDD原理主義みたいなものが流行ってて、はてブのITタブにはきれいなコードを書くためのコーディング規約やテクニックに関するブログエントリやLT資料がたくさん流れていた。 最初にAndroidの大規模プロジェクトに関わった時は、元々のコードがかなりひどかった(初めてJavaを書く人達だけで書いたとしか思えない、現代ではおおよそあり得ないようなレベル)ため、リファクタリングをすることに非常に意義もやりがいも感じたし、どうせきれいにするのならばと張り切って出来るだけリーダブルなコードを書こうとした。 その後チームにgit化の波が訪れ(自分が推進したんだが)PRによるコードレビューなるものもやるようになった。 意識が高か

            より美しいコードを書くことに対する感情を失ってしまったのは衰えか成長か - まいくろ🍣きりみん
          • レベルアップしたい人必見 Qiita記事43選 - Qiita

            はじめに 本記事ではレベルアップしたいエンジニアが読んでおくべきQiita記事を紹介します。厳選に厳選を重ねた43記事です。全ての記事を読んでおく必要はありませんが、ちょっとでも「分からないな」「興味あるな」など思ったタイトルがあれば読んでみてください。 次の4種類に分類して紹介しています。参考にしてください。 フロントエンド バックエンド インフラ・Linux周りの知識 その他 それでは、早速紹介していきます! 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 フロントエンド まず最初はフロントエンドエンジニアに読んでおくべきとおすすめできるQiita記事を11個選びました!フロントエンドエンジニアとしての基礎が身に付く

              レベルアップしたい人必見 Qiita記事43選 - Qiita
            • 【レポート】AWS における安全な Web アプリケーションの作り方 #AWS-55 #AWSSummit | DevelopersIO

              この記事では、5月12日に行われた AWS Summit Online 2021 のオンラインセッション『AWS における安全な Web アプリケーションの作り方(AWS-55)』の模様をレポートします。 セッション概要 情報処理推進機構(IPA) の公開している「安全なウェブサイトの作り方」をはじめとしたセキュリティを考慮した安全なウェブアプリケーションの設計ガイドラインがいくつか知られています。本セッションでは、アプリケーション開発者向けにガイドラインに則ったアプリケーションを AWS 上でどのように実装するのかを AWS プラットフォームレイヤーとアプリケーションレイヤーのそれぞれの観点から項目ごとに解説し、アプリケーション導入前、または導入後のセキュリティ対策の指標となることを目指します。 登壇者 アマゾン ウェブ サービス ジャパン株式会社 技術統括本部 ソリューションアーキテク

                【レポート】AWS における安全な Web アプリケーションの作り方 #AWS-55 #AWSSummit | DevelopersIO
              • 大ヒットゲーム『Balatro』のコードが“力業”だとして共感呼ぶ。コードが汚くても、ゲームが完成してちゃんと動けばそれでいい - AUTOMATON

                ホーム ニュース 大ヒットゲーム『Balatro』のコードが“力業”だとして共感呼ぶ。コードが汚くても、ゲームが完成してちゃんと動けばそれでいい ゲームを制作する際に必要となるプログラム。そのコードの記述にあたっては「コーディングルール」などとして、構造の把握のしやすさなどが求められることがある。一方で今回、あるユーザーが『Balatro』のコードの一部を公開。コードにif文が多用されている点などから注目されているものの、「見づらかったり、複雑なコードでもほぼ問題なくゲームを完成させられる」事例として共感も呼んでいるようだ。 コードのわかりやすさ ゲームの制作にあたっては、基本的にはプログラミング言語を用いてソースコードを書くといった、プログラムの記述が必要となる。プログラミング言語としては、「C++」「C#」のほか「Java」「Ruby」など、さまざまな種類の言語が存在している。 またゲ

                  大ヒットゲーム『Balatro』のコードが“力業”だとして共感呼ぶ。コードが汚くても、ゲームが完成してちゃんと動けばそれでいい - AUTOMATON
                • 20年でソフトウェア開発の景色はどのぐらい変わったのか? - Qiita

                  PySpa統合思念体です。 某チャットで、「今時のOSSのプロジェクト管理とかのベストプラクティスが書いてある本ないかな、陳腐化早そうだしないか」みたいな話題が投入されました。その中で、エキスパートPythonプログラミングとか、Pythonプロフェッショナルプログラミングとかは思い出して紹介したけど、他の人からはShip It、Manage It、Release It三部作とか、達人プログラマーとかも出てきました。 このあたりの源流を辿ると、そういえば今流行ってる開発の源流としてはエクストリームプログラミングの開発系のプラクティスの遺伝子を受け継いでいるのが多いよな、そういえば当時から見て今ってどう変わっているのかな、という話題に。せっかくなので20年前を思い出しつつ、当時と今でどういう風に変わってきたのか適当にまとめてみます。 20年前の状況 XP白本こと、eXtreme Progra

                    20年でソフトウェア開発の景色はどのぐらい変わったのか? - Qiita
                  • 業務アプリケーション開発にGoを採用する理由

                    この記事は MICIN Advent Calendar 2022 の24日目の記事です。 前回は熊沢さんの2つの新規事業立ち上げで経験したタイプ別MVP検証の進め方でした。 はじめに 本記事では、業務アプリケーションのバックエンドとしてGoを採用することによるメリットを、実際の業務経験を振り返りつつ考察してみます。 近年では多くの企業でGoが採用されています。その採用理由は、「並行処理をたくさん行いたいから」「学習コストが低いから」「フットプリントが小さくコンテナベースのプラットフォームに向いてるから」「Googleが使ってるから」「高速だから」といったところが挙げられるんじゃないでしょうか。 一方で、単なるモノリスなAPIとしてGoを選ぶ必要はないんじゃないのか、といった声もよく聞きます。「初期フェーズはスピード重視でRuby on Railsが最強だ」「枯れた技術であるJava + S

                      業務アプリケーション開発にGoを採用する理由
                    • 「Magento」を使って1,400万商品を取り扱えるように越境ECサイトをパワーアップした話 - MonotaRO Tech Blog

                      モノタロウで海外向けのECサイト開発を担当している山田です。Tech Blogでは、これまでに国内サイトの開発・運用を効率化する様々な取り組みを紹介してきましたが、今回はモノタロウの海外事業に関する取り組みについて、特に、Magentoを活用したモノタロウの越境ECサイト開発と運用にスポットを当てて紹介します。 MonotaROの海外事業 MonotaROの東南アジア向け越境ECビジネスについて Magentoとは Magentoで越境ECサイトをリプレイスした背景 Magentoによるサイト開発・運用の効率化事例 エクステンション導入による開発の高速化 ベスト・プラクティスに沿った開発手法の提供 カスタマイズに対して堅牢性の高いアーキテクチャを提供 効率的に開発が行えるコーディング手法の提供 品質保証のための枠組みをデフォルトで提供 公式ドキュメントの活用によるMagentoの効率的な学

                        「Magento」を使って1,400万商品を取り扱えるように越境ECサイトをパワーアップした話 - MonotaRO Tech Blog
                      • TypeScript エラー処理パターン - Object.create(null)

                        M 年前にも N 年後にも人類は同じ話をしている. まとめ エラーの発生方法は throw と return に大別できる throw には簡潔さ, return には明瞭さと型安全性といった特徴がある どちらの方法がより適しているかはプログラムの規模, エラーの種類, ハンドリングの方法などが判断の材料になる 実際にどちらの方法を使うかは上の判断材料と, フレームワークやプロジェクトのコーディング規約なども合わせて複合的に決めるのがよい エラー発生方法の分類 まず前提として, 関数から呼び出し元にエラーを伝える方法は以下の 2 つに大別できます. 逆にこの記事ではこれ以上の具体的な方法についての議論はしません. throw エラーを throw して呼び出し元に伝える方法です. 例えば以下のようなものが当てはまります. throw new Error("...") Promise.rej

                          TypeScript エラー処理パターン - Object.create(null)
                        • finalを付けるのをやめてみた - 日々常々

                          Javaの話ね。バージョンは8以降の実質的final(effectively final)があるものとします。7以前は匿名クラス(この呼び方は 匿名クラスとかローカルクラスとか参照)でローカル変数を使うにはfinalが必要なので文脈変わります。 前提の整理 final は色々なところにつけられます。 例えばこんな感じ。 final class FooClass { final Object barField = new Object(); final void bazMethod(final Object quxParameter) { final Object corgeLocalVariable; } } このエントリで対象にするのは変数。フィールド barField 、パラメータ quxParameter、ローカル変数 corgeLocalVariable です。 以下を前提にします

                            finalを付けるのをやめてみた - 日々常々
                          • 株式会社リクルート エンジニアコース新人研修の内容を公開します!(2023年度版) | Recruit Tech Blog

                            こんにちは! 2023年度エンジニア新卒の、吉田です。 株式会社リクルート 新卒エンジニアコースでは、部署への配属前に、BootCampと呼ばれる新人研修を行っています。 本日は2023年度の研修の内容を、実際に受講した新卒の立場から紹介させていただきます。 研修の内容については毎年反響をいただいていますが、今年度も一段と進化し、より充実した研修でした。 ページ下部に研修資料を公開していますので、ぜひ研修の雰囲気を感じ取っていただけると嬉しいです。 研修の概要 エンジニアコースの新人研修は、配属後にスピード感を持って成長できるようになることを見据え、 「さまざまな技術領域の講座を受け、興味関心を広げて、知らなかった好奇心に出会う」 「現場で求められる『仕事への取り組みスタンス』をつかむ」 「気軽に相談できる仲間(同期)をつくる」 の3点が目的とされています。 今年度は、入社前に行われたスキ

                              株式会社リクルート エンジニアコース新人研修の内容を公開します!(2023年度版) | Recruit Tech Blog
                            • KotlinをKotlinらしく、そして可読性を高く保つ運用知見 - エキスパート長澤太郎に聞く実装のイロハ - エンジニアHub|Webエンジニアのキャリアを考える!

                              KotlinをKotlinらしく、そして可読性を高く保つ運用知見 - エキスパート長澤太郎に聞く実装のイロハ 近年注目を集めるKotlinはどのように書き、どのように運用するのがいいのか。2012年からKotlinに親しむUbie社の長澤太郎さんに、その経験から得られたKotlinノウハウを聞きました。 2011年7月に登場したJVM言語・Kotlinは、近年多くの注目を集めている言語の1つです。Androidアプリの開発言語としてGoogle I/O 2017で正式採用されたことも契機となり、Kotlinはその存在感を一挙に高めました。 そして、この言語に黎明期から親しみ続けてきたのが、Ubie株式会社の長澤太郎(ながさわ・たろう/ @ngsw_taro )さんです。業務や登壇、執筆活動など、多くの局面でKotlinを活用し、ノウハウを蓄積してきた長澤さんに、Kotlinの言語特性やより

                                KotlinをKotlinらしく、そして可読性を高く保つ運用知見 - エキスパート長澤太郎に聞く実装のイロハ - エンジニアHub|Webエンジニアのキャリアを考える!
                              • 【初心者向け】無料でPythonの基本文法を5時間で学ぼう! - Qiita

                                はじめに この記事は、AI AcademyのPython文法速習編とPython プログラミング入門編の内容をベースに一部修正を加えたものです。 この記事を読み進めることで、Pythonの基本文法の基礎を学ぶことが出来ます。 Pythonを学び終わった方は、無料(一部のコンテンツのみ有料だが基礎コンテンツはほぼ全て無料)でAI・機械学習が学べるAI Academyも活用ください。 オンライン機械学習スクールはこちら なぜPythonなのか? AI Academyでは人工知能(AI)分野を中心とした学習コンテンツを扱っており、その人工知能分野においてPythonは機械学習・ディープラーニングを容易に扱うことができるからです。 また、The 2018 Top Programming Languagesの記事でも、プログラマーの年収は1位でした。 The 2018 Top Programming

                                  【初心者向け】無料でPythonの基本文法を5時間で学ぼう! - Qiita
                                • Javaを使うなら知っておきたい技術、フレームワーク、ライブラリ、ツールまとめ

                                  Javaの開発と言っても、各種ミドルウェアやフレームワーク、ライブラリ、ツールなどが豊富にあり選択に悩むことは少なくないと思います。 そこで関連技術のインデックスになればと作成しました。 あくまで知っている範囲で記述しているので、コメントしてもらえれば随時追加します! すべてを書くと膨大な量になるため、現状採用が減ってきているものや、そもそもあまり採用されていないもの、後継があったり、類似のものと比較した場合に明らかに劣っているものは省いています。 ちなみにライブラリには高機能なものも多いので、分類は参考程度にご覧下さい。 サーバ系 Apache HTTP Server 世界中でもっとも多く使われているWebサーバ。 nginx フリーかつオープンソースのWebサーバで、処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されている。 Tomcat Java ServletやJSP

                                    Javaを使うなら知っておきたい技術、フレームワーク、ライブラリ、ツールまとめ
                                  • なぜReactでもVueでもなくElmを使っているのか - Qiita

                                    Functional-Static-Strong-Managed −0.25 (0.04) ∗∗∗ Functional-Dynamic-Strong-Managed −0.17 (0.04) ∗∗∗ Proc-Static-Strong-Managed − 0.06 (0.03) ∗ Script-Dynamic-Strong-Managed 0.001 (0.03) Script-Dynamic-Weak-Managed 0.04 (0.02) ∗ Proc-Static-Weak-Unmanaged 0.14 (0.02) ∗∗∗ 各カテゴリに属する言語は以下のとおりです。 Functional-Static-Strong-Managed: Haskell、Scala Functional-Dynamic-Strong-Managed: Clojure、Erlang Proc-Sta

                                      なぜReactでもVueでもなくElmを使っているのか - Qiita
                                    • コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                      コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS 数多くのScala関連OSSにコミットを続ける吉田憲治(xuwei-k)さん。その精力的な活動を支える、関数型の知見の源をうかがいました。 オブジェクト指向言語と関数型言語の特徴を併せもつマルチパラダイム言語・Scala。この言語に関連するOSSのコミット履歴には「 xuwei-k」というアカウントが頻繁に登場します。今回お話を聞いた吉田憲治(よしだ・けんじ/ @xuwei_k )さん、その人です。 吉田さんはScalaのスペシャリストとして、数多くのScala関連OSSにコミットを続け、2018年、Scalaコミュニティに対する貢献者に贈られる「Phil Bagwell Award」を受賞しています。界隈屈指のコントリビューターとして知られる吉田さんに、Scalaのスキルを研鑽して

                                        コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                      • JavaScriptデザインパターン入門 - Qiita

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

                                          JavaScriptデザインパターン入門 - Qiita
                                        • OpenTelemetryについての現状まとめ (2020年6月版) - YAMAGUCHI::weblog

                                          はじめに こんにちは、StackdriverあらためGoogle Cloud Operations担当者です。ここ最近は業務でOpenTelmetry関連をほそぼそとやってきたんですが、ようやくOpenTelemetryも安定版リリースのめどが立ってきたので、これまでと現状と今後を簡単にまとめておこうと思って書き始めたら、全然簡単じゃなくて10000文字超えました。(なおこのシリーズは今後も続きそうな気がするのでタイトルに日付を振っておきました) TL;DR 分散トレースとメトリクスの計装フレームワークとしてOpenTelemetryというものがCNCF Sandboxプロジェクトとして進行中。これはOpenTracingとOpenCensusのマージプロジェクトであり、各々の正式な後継版である。 とはいうものの、まだ仕様もstableリリースになっておらず、当然各言語向けのライブラリも安

                                            OpenTelemetryについての現状まとめ (2020年6月版) - YAMAGUCHI::weblog
                                          • 【forが嫌い!可読性を上げたい!】楽するために学ぶ配列の高階関数(map, filter, reduce等) - Qiita

                                            【forが嫌い!可読性を上げたい!】楽するために学ぶ配列の高階関数(map, filter, reduce等)JavaScriptリーダブルコード高階関数 複雑すぎるforの処理に悩まされたことはありませんか? プログラミング習いたての頃、forに悩まされた記憶はありませんか? また、業務で複雑すぎるfor文を見て、これくらい理解できないとやっていけないのか…と悩んだ記憶はありませんか? 実はそのfor…もっと読みやすい書き方が出来て、簡単に読めるとしたら楽じゃないですか? いやいや、単にもっと楽したくありませんか? 今回は個人的に「苦手なfor文」の書き換え(map, filter, reduce等)について、短くなるだけじゃないところを紹介したいと思います。 コードを読む事に神経をとがらせて疲弊したくない人には、オススメしています。(頭を使う労力が減ってると信じたい...) 本記事につ

                                              【forが嫌い!可読性を上げたい!】楽するために学ぶ配列の高階関数(map, filter, reduce等) - Qiita
                                            • Processingで見るプログラミングスタイル七変化 - Qiita

                                              序 この記事では、次のような一つの簡単なProcessingスケッチについて、様々なスタイルでコードを書いて比較してみます。 float[][][]d=new float[32][2][2]; float f(float[]x){return x[0]+=((frameCount%30==0?x[1]=random(100):x[1])-x[0])/4;} void setup(){size(800,800);fill(252,32);} void draw(){ square(0,0,800); scale(8); for(float[][]e:d) line(e[0][0],e[1][0],f(e[0]),f(e[1])); }#つぶやきProcessing pic.twitter.com/055DFzHmwF — FAL @STG制作とプログラミングお絵かき (@falworks_j

                                                Processingで見るプログラミングスタイル七変化 - Qiita
                                              • Java17対応版!Javaコーディング規約の紹介 | フューチャー技術ブログ

                                                フューチャーのGitHubリポジトリで公開しているJavaコーディング規約をJava17に対応させたのでその宣伝記事です。 Future Enterprise Coding Standards | Javaコーディング規約 Java17先日の2021年9月14日にJava17がリリースされました。 Java17は長期サポートされる(LTS)バージョンです。前回のLTSのJava11からすると、3年ぶりのLTS版のリリースとなります。 Java12からJava17の新機能前回のLTS版から追加されたみてJava17まででどんな機能が追加されたのかを簡単にまとめると以下です。(これら以外にもあります。) switch式とswitch新構文 テキストブロック レコード パターンマッチング シールクラス 次のページが大変参考になります。 Oracle Help Center | Java言語の変更

                                                  Java17対応版!Javaコーディング規約の紹介 | フューチャー技術ブログ
                                                • プログラミング言語との付き合い方|hgsgtk

                                                  このエントリは、Clean Agileの書評を書いてるときに脱線していたら、脱線にしてはえらい長々してしまったので、独立したエントリに分割したものである。なんの根拠も裏付けもないただの私感を垂れ流す。 きっかけとなったのは、ウォーターフォールにソフトウェア開発の動向が支配されていたという歴史的動向をざっとおさらいされていたこちらの記述だった。 我々がウォーターフォールに支配されていた様子は、当時の動向を見ればわかる。1968年にダイクストラが「構造化プログラミング」を提唱したが、そのあとすぐに「構造化分析*7」と「構造化設計*8」がやってきた。1988年に「オブジェクト指向プログラミング(OOP)」が普及し始めたが、そのあとすぐに「オブジェクト指向分析(OOA)*9」と「オブジェクト指向設計(OOD)*10」がやってきた。つまり、「分析」「設計」「実装」の3つのフェーズが我々を虜にしていた

                                                    プログラミング言語との付き合い方|hgsgtk
                                                  • JMeterでAPIテストの実装を始めました - チームスピリットデベロッパーブログ

                                                    初めまして!TeamSprit EXのQAエンジニアの河西です。 昨年9月に入社し、APIテストの実装や、負荷テストの実施に取り組んでいます。 その中で多くの試行錯誤があったため、そのことについて全3本の記事でご紹介したいと思います。 JMeterによるAPIテストの実装について ◀︎ 今回はこちら JenkinsによるAPIテストの定期実行について JMeterを使ったSalesforceアプリへの負荷テストの実施について 既にAPIテストは少し作られていましたが運用されていなかったため、既存のAPIテストを参考にし、運用できるAPIテストの実装を始めました。 その取り組みの中で、自動テスト実装初心者の私が学んだことや工夫したことについて、今回は書いていきます。 なぜAPIテストを実施するのか? どうやって実装するのか? APIテスト実装における課題 属人化問題と向き合う 最後に なぜA

                                                      JMeterでAPIテストの実装を始めました - チームスピリットデベロッパーブログ
                                                    • モノレポ好きじゃない / morrita - Message Passing

                                                      自分は今は社内 Monorepo での作業がメインで、たまに Android とかさわってる。 レポジトリの壁というか、レポジトリの違いを含むインフラの違いの壁は、組織の壁より厚い。 この話は前にも書いたことがある。 だから向井さんの言っていることはよくわかる。 Monorepo が強制するインフラ共通化が押し下げた組織の壁の低さを、しばしば実感する。 たとえば最近だと、仕事でやっている Android アプリの APK のビルド方法が変わった際にビルドツールチェインにあるマイナーなバグにあたってしまい、 そのツールのバグを直したことがあった。そんなツールがあるとは知らなかったというくらい降って湧いた話。 でもビルドシステムが統一されているおかげでコードをビルドするのもテストするのも簡単で、 IDE も普段の設定そのまま。コードレビューもいつもと同じ。 はじめてのコードベース、レビュー相手

                                                        モノレポ好きじゃない / morrita - Message Passing
                                                      • よいレビューの方法や考え方とは?全エンジニアがレビュー前に知っておきたいこと - 仮想サーファーの日常

                                                        Webエンジニアとして働いていると、新規機能の設計レビューや実装レビューをすることがよくありますよね。エンジニアなら当たり前のようにやっている業務です。 ですが、「よくよく考えてみると設計レビューや実装レビューの方法をしっかり時間を使って学んだことってないなぁ...。」という方も意外と多いのでは。 ぼく自身どうやってレビューしてるっけな?と振り返ってみると、「なんとなくコードを読んで、仕様漏れがないか、考慮漏れでバグになるケースがないかをチェックしている」くらい。 普段Webエンジニアとして働いている方の中でも、自分の中でしっかりとレビューの方法を確立できていない方も多いのではと思います。 今回は、Webエンジニアが設計やコードのレビューをするときに意識しておきたいこと、エンジニア初期のころに知っておきたかったレビューの方法と考え方をまとめました。 よりよいレビューの方法と考え方を知ってお

                                                          よいレビューの方法や考え方とは?全エンジニアがレビュー前に知っておきたいこと - 仮想サーファーの日常
                                                        • 翻訳記事:エンタープライズ アプリでReactを選択したら解雇されそうになった話 | Graat(グラーツ)-グロース・アーキテクチャ&チームス株式会社

                                                          unsafe:本記事は、I Almost Got Fired for Choosing React in Our Enterprise App( https://medium.com/better-programming/i-almost-got-fired-for-choosing-react-in-our-enterprise-app-846ea840841c ) を原著者Razvan Dragomir氏の許可を得て翻訳したものです。 エンタープライズ アプリでReactを選択したら解雇されそうになった話 Reactは我々の開発を楽にするはずだった。それどころか障害物が作成された。 Razvan Dragomir 2021.01.23 2018年の夏のことだった。私の上司Adrianから、カナダの大企業のCTOであるJamesとのSkypeミーティングに参加するよう頼まれた。 お互いを

                                                            翻訳記事:エンタープライズ アプリでReactを選択したら解雇されそうになった話 | Graat(グラーツ)-グロース・アーキテクチャ&チームス株式会社
                                                          • Policy as Code を実現する Open Policy Agent に憧れて。ポリシーコードでAPI仕様をLintする | フューチャー技術ブログ

                                                            Policy as Code を実現する Open Policy Agent に憧れて。ポリシーコードでAPI仕様をLintする はじめにこんにちは、TIG DXユニット真野です。 CNCF連載2回目はOpen Policy Agent がテーマです。前回は伊藤さんによる、k3sを知る、動かす、感じるでした。 https://www.openpolicyagent.org/ Open Policy AgentとはOpen Policy Agent(OPA)は汎用的なポリシーエンジンで、Rego と呼ばれるポリシー言語で定義されたルールに従って、入力がポリシーに沿っているか否かの判定を移譲させることができます。Regoで宣言的にポリシーを実装し、Policy as Code を実現できます。 OPAは汎用的というだけあって、Kubernetes上でしか動かせないと言った制約は無いです。Go言

                                                              Policy as Code を実現する Open Policy Agent に憧れて。ポリシーコードでAPI仕様をLintする | フューチャー技術ブログ
                                                            • 10Xのテストコード規約 - 10X Product Blog

                                                              はじめに こんにちは!モジュール開発部のyamakazu (@yamarkz) です。 10Xではテストコードの標準化を目指して、テストコード規約 (Test Coding Standards) を整備してきました。この記事では数ある規約の中でも、実際に活用して効果が大きかったものをいくつか取り上げて紹介します。 テストコードの品質に課題を持っている方や、コーディング規約の整備に関心を寄せる方の参考になれれば幸いです。 ChatGPT 要約 ChatGPTに内容の要約をお願いしました。この記事で述べられている内容は以下の通りです。 テストコードに規約を設ける目的は、「テストの資産性を高めることで、プロダクトの発展性と事業の継続可能性を守るため」である。テストコード規約は、ボトムアップで開発組織全体が守る基準を明確にし、良質なテストを書くために設ける。この規約ではGroup, Arrange

                                                                10Xのテストコード規約 - 10X Product Blog
                                                              • ZOZOTOWNアプリのレガシーAPIリプレイスの道のり 〜チームでの挑戦〜 - ZOZO TECH BLOG

                                                                はじめに こんにちは、ZOZOTOWN開発本部アプリバックエンドブロックの髙井です。 私達のチームでは、レガシーとなっているZOZOTOWNアプリ用API(以下、レガシーAPIと呼ぶ)のリプレイスに2023年から着手しています。リプレイス対象となるレガシーAPIは規模が大きいので、フェーズで区切り、段階的にリプレイスを進めています。区切られた各フェーズは、フェーズ1、フェーズ2といった形で呼び分けており、フェーズごとにリプレイス対象とするエンドポイントを設定しています。一方で、事業案件や他マイクロサービスのリプレイスが並行して行われるため、フェーズごとにリプレイス計画を柔軟に調整してきました。 本記事ではレガシーAPIのリプレイスについて、フェーズ3までを担当者が背景と課題を踏まえつつ紹介していきます。 目次 はじめに 目次 背景 フェーズ1 課題 1. リプレイス先APIの開発が初めて

                                                                  ZOZOTOWNアプリのレガシーAPIリプレイスの道のり 〜チームでの挑戦〜 - ZOZO TECH BLOG
                                                                • メドピアCTOが明かす、技術的負債を乗り越えるためにやったこと

                                                                  2019年6月20日、TECH PLAY SHIBUYAにて「CTOが考える、チームで向き合う技術的負債との付き合い方」が開催されました。メドピア・SansanのCTOが、自社における技術的負債といかにして向き合ってきたか、その経緯と取り組みを語りました。(※当初登壇予定だったアイスタイルCTO竹澤氏は体調不良により欠席)。プレゼンテーション「ぼくらはこうして乗り越えてきた!」に登壇したのは、メドピア株式会社執行役員CTOの福村彰展氏。講演資料はこちら 医師専用のコミュニティサイトを運営するメドピア 福村彰展氏(以下、福村):始めさせていただきます。今日のタイトルは「チームで向き合う技術的負債との付き合い方」ということで。私からは「ぼくらはこうして乗り越えてきた!」というテーマで、みなさんに有用な情報をお伝えできればと思いますので、よろしくお願いします。 まず、私の自己紹介からですね。 メ

                                                                    メドピアCTOが明かす、技術的負債を乗り越えるためにやったこと
                                                                  • これからの時代を生き抜くITスキルとしての「Python」で立身出世は可能なのか?

                                                                    ウェブの発展やスマートフォンの普及に伴い、ITの力で成長したベンチャーの出現や、個人で開発する人が増加しており、なんとなく「ITスキルは儲かる」「エンジニアは稼げる」という考えを抱いている人もいるはず。しかし、就職するにしろ、アプリを開発するにしろ、実際のところどのようにITスキルを使えばお金を稼げるのかはいまいち不透明です。そこで、最も学んでみたいプログラミング言語ランキングで不動の人気を誇り、プログラマーが本当に支持するプログラミング言語ランキングでも1位に輝いた「Python」を使う場合、どのように稼ぐ手段があるのかGIGAZINE編集部で考えてみました。様々な分野の専門知識を持った講師による講義をムービー形式で受講できる学習プラットフォームの「Udemy」では、ちょうど12月4日までサイバーウィークセールが開催されており、1200円~という手ごろな価格で講義を受講可能ということだっ

                                                                      これからの時代を生き抜くITスキルとしての「Python」で立身出世は可能なのか?
                                                                    • #dlang 所有権と借用をD言語に組み込む【翻訳】 - Kotet's Personal Blog

                                                                      Ownership and Borrowing in D – The D Blog を 許可を得て 翻訳しました。 誤訳等あれば気軽に Pull requestを投げてください。 ほとんどのプログラムはメモリを確保し、管理します。 プログラムが複雑になり、失敗がより大きな損害を引き起こすようになるにつれて、 メモリ管理を正しく行うことはますます重要になってきています。 一般的には以下のような問題があります。 メモリリーク(使っていないメモリを解放しない)二重フリー(複数回メモリを解放する)use-after-free(すでに開放されたメモリを参照する)問題は、どのポインタがメモリを解放する責任を持つか(つまり、メモリを所有しているか)、 どのポインタがメモリを参照しているか、どれが(スコープ内で)アクティブかです。 一般に以下のような解決策があります。 ガベージコレクション(Garbage

                                                                        #dlang 所有権と借用をD言語に組み込む【翻訳】 - Kotet's Personal Blog
                                                                      • ソースコードを読むための技術(チートシート) - Qiita

                                                                        0 前章 0.1 概要 聞くところによると業務の8割がソースコードを読む時間らしい。しかし、8割という規模感の割には世間でソースコードの読み方についての議論が活発にされている印象はない上に、体系的かつ順序立てたソースコードの読み方をまとめたWebサイトや書籍も少ない。疑問に思いながらもそれなりに長いことデバッガーを使った読み方・リーダブルコードの内容・Web記事を参照にしてソースコードを読んでいた。 しかし、ソースコードリーディングの方法についての情報がメモアプリ内で散らかってしまい、いつまで経ってもソースコードリーディングの技術が体系的に身についていないと感じた。そのため、本稿では本・Web記事・YouTubeなど媒体を問わず、様々な文献からソースコードを効率的に読む方法をチートシートにしてまとめた。チートシートにする目的は「見返して反復し長期記憶化しやすいようにするため」と「ソースコー

                                                                          ソースコードを読むための技術(チートシート) - Qiita
                                                                        • Checkstyleでクリーンアーキテクチャをチェックする - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」

                                                                          こんにちは、なおしむです。 私はシステム企画部でシステム全体のアーキテクトとレガシーシステムの改善開発をしています。 弊社ではドメイン駆動設計を使って開発をしています。 ドメイン駆動設計ではクリーンアーキテクチャのようなレイヤー構造でシステムを作ります。このレイヤー構造に従って設計・コーディングをするのですが、コードレビュー時に正しいレイヤー構造で作れているかをチェックするのが地味にめんどくさいです。。 現在のプロジェクトで、この地味で面倒なレイヤー構造のチェックをCheckstyleを使って自動化しているのでその方法を紹介します。 クリーンアーキテクチャのコードレビューはめんどくさい クリーンアーキテクチャとは、図のような円形のレイヤー構造のアーキテクチャです。 The Clean Architecture を参考に筆者が作成 クリーンアーキテクチャにはレイヤー構造の依存関係にルールがあ

                                                                            Checkstyleでクリーンアーキテクチャをチェックする - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
                                                                          • 破綻しにくい CSS 設計手法と命名規則

                                                                            HTML 側の内容とセレクタがマッチすればスタイルが適用されます。このように CSS はとても単純な仕組みですが、その単純さゆえに大規模な実装では管理が難しく簡単に破綻してしまう問題点を抱えています。 CSS が破綻してしまう主な理由は以下の通りです。 セレクタには詳細度 (優先順位) が存在するスタイルには子要素にまで継承する同じセレクタを多重定義できるHTML 側の各要素はスタイルが複合的に適用される 開発現場では CSS が単純であるがために軽視されてしまう嫌いがあります。多くのプロジェクトでは Java や SQL などのコーディング規約やアンチパターンなどは用意されていますが、CSS は用意されていないケースは珍しくありません。その結果、統一されたルールがない状態でプロジェクトが進み、開発が佳境にさしかかったタイミングで CSS の逆襲が始まります。CSS が悪いわけではありませ

                                                                              破綻しにくい CSS 設計手法と命名規則
                                                                            • オブジェクト設計スタイルガイド

                                                                              オブジェクト設計において、コードの読みやすさ、書きやすさ、メンテナンス性を向上させるにはどうすればよいでしょうか? 本書は、より良いオブジェクト指向のコードを書くためのルールを紹介します。オブジェクトの種類に応じたオブジェクトの構築、メソッドの定義、状態の変更や公開など、設計ルールを説明します。Java、Python、C#など、あらゆるオブジェクト指向言語に適用できるテクニックを、擬似コードを使ってわかりやすく解説します。コードの品質を上げるためのルールを紹介する本書は、プログラマ必携の一冊です。 まえがき 序文 本書について 1章 オブジェクトを使ったプログラミング入門 1.1 クラスとオブジェクト 1.2 状態 1.3 振る舞い 1.4 依存関係 1.5 継承 1.6 ポリモフィズム 1.7 コンポジション 1.8 クラスの整理 1.9 Return文と例外 1.10 ユニットテスト

                                                                                オブジェクト設計スタイルガイド
                                                                              • 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とのつきあい方 - 私が歌川です
                                                                                • 持続的なアプリ開発のための DX を支える技術 #DroidKaigi 2020 - Infinito Nirone 7

                                                                                  この記事は、DroidKaigi 2020 で発表予定だったセッション「持続的なアプリ開発のための DX を支える技術」を解説するための記事です。 セッション概要 Android の歴史はすでに 10 年を超え、数多のアプリケーションがストアで公開されています。これらのアプリケーションの中には、何年も継続的にバージョンアップを重ねているものもたくさんあります。 このセッションでは、このような持続的なアプリケーション開発・リリースをうまく回す秘訣として DX という言葉をとらえ、アーキテクチャやテストのほか、日々の開発に関わるワークフローをメンテナンスするための考え方や手立てとして、モバイル CI や Android 向け各種ツールキットの導入と効率化、Gradle をベースにした独自タスク開発の方法などを紹介します。 資料 speakerdeck.com 一部実装の詳細を資料に委ねています

                                                                                    持続的なアプリ開発のための DX を支える技術 #DroidKaigi 2020 - Infinito Nirone 7