並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 361件

新着順 人気順

デコレータの検索結果1 - 40 件 / 361件

  • 脳に収まるコードの書き方

    Mark Seemann 著、吉羽 龍太郎、原田 騎郎 訳、Robert C. Martin まえがき TOPICS 発行年月日 2024年06月 PRINT LENGTH 312 ISBN 978-4-8144-0079-9 原書 Code That Fits in Your Head FORMAT Print PDF EPUB ソフトウェアは複雑さを増すばかりですが、人間の脳は限られた複雑さしか扱えません。ソフトウェアが思い通りに動くようするには、脳に収まり、人間が理解できるコードを書く必要があります。 本書は、拡張を続けても行き詰ることなくコードを書き、複雑さを回避するための実践的な方法を解説します。最初のコードを書き始めるところから機能を追加していくところまでを解説し、効率的で持続可能なペースを保ちながら、横断的な問題への対処やトラブルシューティング、最適化を行なう方法を説明します

      脳に収まるコードの書き方
    • 何年も前に書かれたソースコードを読むときの頭の中 - Mitsuyuki.Shiiba

      コードを書く仕事をしてると、読むことも多い。読んでる時間のほうが多いかもしれない。いま書かれてるコードを読むことも、もちろん多いし、何年も前に書かれたコードを読む機会も割とよくある。 コードを読むと、そのコードを書いた人の考えや、そのときの状況が感じられて、おもしろい。特に、何年も前に書かれたコードを読むときは、コーヒーを片手に(そのときはこんな感じだったんだろうなぁ)って想像しながら読んで楽しい。 ふと、どういうコードから、自分がどういうことを想像するのかを書いてみようと思った。 前提 今、目の前で書かれているコードを読んでレビューしてるときの話じゃなくて、何年も前に書かれたコードを読むときの話をしようと思う。だから、そのコードが良いとか良くないとか、こうするべき「だった」とかは考えない。今後の自分がどう書きたいかなぁ?くらい。 また、そのコードを書いた人が良いとか良くないとかでもない。

        何年も前に書かれたソースコードを読むときの頭の中 - Mitsuyuki.Shiiba
      • Python 製 Web フレームワークを Flask から FastAPI に変えた話|NAVITIME_Tech

        こんにちは、けんにぃです。ナビタイムジャパンで公共交通の時刻表を使ったサービス開発やリリースフローの改善を担当しています。 今回は Python 製の Web フレームワークとして FastAPI を導入した話をしようと思います。 Python 製の Web フレームワークPython には代表的な Web フレームワークが 2 つあります。 ・Django: フルスタックフレームワーク ・Flask: マイクロフレームワーク Django は大規模開発向け、Flask は小中規模開発向けと言われますが、今回開発したサーバは小規模なサーバだったため、以前は Flask で開発していました。 しかし、どちらのフレームワークを使う場合でも下記のような機能を使おうとするとプラグインやサードパーティの助けを借りる必要があります。 ・OpenAPI ・JSON Schema ・GraphQL ・We

          Python 製 Web フレームワークを Flask から FastAPI に変えた話|NAVITIME_Tech
        • Pythonを会得する考え方やポイント5選! 『パーフェクトPython』著者が魅力を語る! - FLEXY(フレキシー)

          ※本記事は2020年4月に公開した内容です。 株式会社ディー・エヌ・エーのシステム本部CTO室の露木誠です。PythonやDjangoについて執筆した『パーフェクトPython』や『Django×Python』などの著書が技術系出版社から数冊出版されています。DjangoのAUTHORSファイルにも実は名前が掲載されています。 本記事では、Pythonを始めたいと思っている方向けに、Pythonの魅力をお伝えできればと思います。知っておきたいPythonの言語仕様や特徴的な考え方をご紹介しますので、参考にしてください。 Python関連のエンジニア案件を見てみる 自己紹介とPython、Djangoに関わる活動について ディー・エヌ・エーのCTO室に所属、元々は異業種からIT業界に参入 現在は、株式会社ディー・エヌ・エーのシステム本部CTO室で、エンジニア組織の課題解決を主な活動として、日

            Pythonを会得する考え方やポイント5選! 『パーフェクトPython』著者が魅力を語る! - FLEXY(フレキシー)
          • サーバーレスの次はなんなんだ

            はじめに この記事は、同人誌サークル「めもおきば」から不定期刊行している技術解説本「めもおきばTecReport」に書いたものを公開用に再編集したものです。 ⇒ めもおきばTecReport 2023.12 この記事のほかにも「私もSecHack365に参加したい!」や、「2023年振り返りと2024年技術予想」としてこんなキーワードを取り上げているので、気になったらぽちっとしてください! メガクラウドと特化型クラウド/ハイパーバイザーのSoC化/ライセンスとクラウドベンダー/イベント駆動型API/LLM時代のAIペアプロ力/生活必需品としてのGPU・NPU/Passkey/ウェブアクセシビリティ/リアルイベントの再開 サーバーレスの次はなんなんだ サーバーレスと呼ばれる技術ムーブメントが盛り上がり始めて8年近くが経ちました。各クラウドベンダーのFaaS(Function-as-a-Ser

              サーバーレスの次はなんなんだ
            • Typescriptの次はRustかもしれない

              Introduction Rustを学び始めたのは多分今年の3月くらい。 なぜ急にRustに興味を持ったのかは後述しますが、半年ほどRustをいじくりまわしてみて、まだまだ学び途中でもRustの素晴らしさを語らずにはいられず、記事を書くことにしました。 Rustは「Cの正当な後継」なんてよく言われますが、WebエンジニアからみてもRustは本当に素晴らしいってことが少しでも伝わればいいなと思います。 RustとTypescript 「なぜRustとTypescript?」って思う方は多いと思うので、順に話していきたいと思います。 2020年のフロントエンドの流行 まず2020年今日時点のフロントエンドについて雑に書くと React・Vueが主流 Typescriptがデファクト、babelなどでトランスパイルは言わずもがな サーバーサイドもNodeで書くならTypescript Jest、

                Typescriptの次はRustかもしれない
              • 1年半のソフトウェアエンジニア長期インターンで出会ったオススメ本をたくさん紹介します - Qiita

                イントロ ABEJAアドベントカレンダーの4日目に一昨日飛び込みました、長期インターン生の佐藤(Twitter: @TodayInsane)です。 去年は機械学習を通して、TWICEというK-POPグループへの愛を語りました。 ABEJAには昨年4月、「本当に何も出来ないけど、休学してプログラミングとかエンジニアの経験を積みたいんです」という何とも不安な主張をするぼくを受け入れていただきました。 この1年半のエンジニア / リサーチ両インターンの過程で出会った良い本をどしどし紹介します。 ちなみにインターン開始時は プログラミング、Pythonだけならちょびっと書けます!(ABCのB問題とか機械学習ライブラリの写経) HTMLってどんな風になってるんですか?(?) サーバ...??リクエスト...?? JavaScript、名前は聞いたことあります 英語の論文しんどい、2時間ぐらいかけてI

                  1年半のソフトウェアエンジニア長期インターンで出会ったオススメ本をたくさん紹介します - Qiita
                • 2023年下半期に他人に勧めたいWeb技術まとめ

                  はじめに Web技術は日進月歩で新しい技術が増えているが、実務でそれらすべてを触る機会はない。そこで、今回の記事では2023年下半期に赤の他人に勧めたいWeb技術を個人の独断と偏見で解説する。 対象者 これから何をすればいいのかわからないプログラマー 新しい技術に興味があるひと スキルセットを拡大したいひと タイトルでなんとなく気になったひと フレームワーク FastAPI FastAPIはPythonでAPIを開発するために開発された軽量のWebフレームワークだ。FastAPIでは、主に以下の特徴がある。 Node.jsやGo言語に匹敵する高速なアプリケーションを開発できる 構造が簡単(Flaskの影響を受けている) Pythonに型定義を含められる 環境構築がコマンド一つで終了する 非同期処理を簡単に実装できる Pythonで開発されているので、機械学習との相性が抜群 RESTとGra

                    2023年下半期に他人に勧めたいWeb技術まとめ
                  • Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる

                    Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる 概要 Pythonのテストライブラリといえばpytestが一般的です。 Python標準のuniitestとは異なり、クラスベースではなく関数ベースでテストコードを記述することが一般的ですが、fixture,conftest,parametrizeを理解すると一気に世界が変わり、テスト体験が圧倒的に向上するため、これらの実装方法を紹介します。 リポジトリ 本記事の説明に使用しているサンプルのテスト実装は、以下のリポジトリです。 想定読者 PythonやGitの基本的な使い方を理解している方を想定しているため、基本的な用語説明は省略しています。 環境 エンジニアの利用率の高いmacOSを前提として説明していますので、その他の環境の方は随時読み替えてください。 開

                      Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる
                    • Web フロントエンドフレームワーク選定前に知っておくべき Angular の 6 つの問題点と、それでも Angular を選ぶ理由 - Qiita

                      Web フロントエンドフレームワーク選定前に知っておくべき Angular の 6 つの問題点と、それでも Angular を選ぶ理由JavaScriptAngularフロントエンド 2019/12/04 追記 @okunokentaro さんが熱いアンサー記事を書いてくれました。 Angularでの開発を快適に進めるために知っておきたいこと https://qiita.com/okunokentaro/items/503ab7a4c7601b564de0 https://gist.github.com/okunokentaro/dc4cd470999fd90aba73423d09a37485 本当に本当にありがたいです。この短時間でこんな良質の記事が書けるのは本当にスゴイ。 Angular コミュニティの暖かさと熱さを感じる 1 日でした。この記事もぜひ参考にしてください。 (ただ、「A

                        Web フロントエンドフレームワーク選定前に知っておくべき Angular の 6 つの問題点と、それでも Angular を選ぶ理由 - Qiita
                      • FastAPI入門 - モダンなPythonフレームワークの特性をチュートリアルで手軽に学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)

                        FastAPI入門 - モダンなPythonフレームワークの特性をチュートリアルで手軽に学ぶ PythonのWebフレームワークとしていま注目を集めるFastAPIは、シンプルにコードが書けるだけでなく、パフォーマンスが高いWebアプリケーションのバックエンドサーバーが構築可能です。同フレームワークの勘所をPythonスペシャリストの杜世橋さんが、初心者向けのハンズオン、そしてより実践的な画像への自動タグ付けサービス実装をとおして解説します。 FastAPIはいま非常に注目されているPythonのWebフレームワークの1つです。Flaskのようにシンプルに書ける一方でPythonのType Hintの機能をうまく活用し、HTTPのリクエスト/レスポンスをPythonの関数の引数/戻り値とシームレスにマッピングして非常に効率的に開発ができるのが最大の特徴です。非同期処理にも対応していてその名

                          FastAPI入門 - モダンなPythonフレームワークの特性をチュートリアルで手軽に学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)
                        • Pythonでいい感じにバッチを作ってみる - prefectをはじめよう - JX通信社エンジニアブログ

                          JX通信社シニア・エンジニアで, プロダクトチームのデータ活用とデータサイエンスのあれこれ頑張ってるマン, @shinyorke(しんよーく)です. 最近ハマってるかつ毎朝の日課は「リングフィットアドベンチャー*1で汗を流してからの朝食」です. 35日連続続いています. 話は遡ること今年の7月末になりますが, JX通信社のデータ基盤の紹介&「ETLとかバッチってどのFW/ライブラリ使えばいいのさ🤔」というクエスチョンに応えるため, このようなエントリーを公開しました. tech.jxpress.net このエントリー, 多くの方から反響をいただき執筆してよかったです, 読んでくださった方ありがとうございます! まだお読みでない方はこのエントリーを読み進める前に流して読んでもらえると良いかも知れません. 上記のエントリーの最後で, 次はprefect編で会いましょう. という挨拶で締めさせ

                            Pythonでいい感じにバッチを作ってみる - prefectをはじめよう - JX通信社エンジニアブログ
                          • Python: ユニットテストを書いてみよう - CUBE SUGAR CONTAINER

                            ソフトウェアエンジニアにとって、不具合に対抗する最も一般的な方法は自動化されたテストを書くこと。 テストでは、書いたプログラムが誤った振る舞いをしないか確認する。 一口に自動テストといっても、扱うレイヤーによって色々なものがある。 今回は、その中でも最もプリミティブなテストであるユニットテストについて扱う。 ユニットテストでは、関数やクラス、メソッドといった単位の振る舞いについてテストを書いていく。 Python には標準ライブラリとして unittest というパッケージが用意されている。 これは、文字通り Python でユニットテストを書くためのパッケージとなっている。 このエントリでは、最初に unittest パッケージを使ってユニットテストを書く方法について紹介する。 その上で、さらに効率的にテストを記述するためにサードパーティ製のライブラリである pytest を使っていく。

                              Python: ユニットテストを書いてみよう - CUBE SUGAR CONTAINER
                            • Python3.7で導入されたdataclass入門 - MyEnigma

                              Python実践入門 ── 言語の力を引き出し、開発効率を高める (WEB+DB PRESS plusシリーズ) 目次 目次 はじめに 通常のclassとdataclassの比較 dataclassの良いところ データを格納する箱であることを明確にできる。 クラス定義を短くかける 型情報を書くことでデータ構造が見やすくなる。 Printしたときに、そのままオブジェクトの中身を表示できる。 asdict関数でdictに変換できる。(Dictから簡単にJSONにも変換できる) Dict(JSON)からdataclassを作ることもできる Frozen引数を使うことで、簡単にイミュータブルにもできる。 データが作られたときに、自動後処理機能を追加することができる。 dataclassの残念なところ コレクションの初期化 参考資料 MyEnigma Supporters はじめに C++ユーザやJ

                                Python3.7で導入されたdataclass入門 - MyEnigma
                              • Pythonでリトライ処理を簡単に追加できる「tenacity」を使ってみる | DevelopersIO

                                今回はPythonで簡単にリトライ処理を追加できる「tenacity」を使ってみます。 デコレータ形式で簡単にリトライ処理を追加できるので便利です。 tenacityについて プログラムを書いていて、HTTPの通信などでリトライ処理を実装する機会は多いと思います。 今回はそんなリトライ処理を簡潔に書けるtenacityの使い方を説明します。 インストール インストールはpipで可能です。 インストール pip install tenacity 使い方 シンプルな例 シンプルな例 import random from tenacity import retry @retry def random_error(): num = random.randint(0, 10) if num > 4: print(f"Error: num={num}") raise Exception("Error!

                                  Pythonでリトライ処理を簡単に追加できる「tenacity」を使ってみる | DevelopersIO
                                • NestJS の基礎概念の図解と要約

                                  はじめに 仕事で使用することになった NestJS について、公式の NestJS Fundamentals Course やドキュメントなどで勉強を進めているのですが、新しい概念が次々と現れるため消化しきれなくなってきました。そこで、まず全体の俯瞰図をしっかりと頭に入れるために、公式ドキュメントの Overview に出てくる範囲の概念を図解して整理し、また各々の役割やプロジェクト内のどこにどのように設定していくかについてまとめることにしました (逆に、大枠とは関係ない部分については大胆に省きました)。 対象読者としては、簡単な CRUD アプリケーションなどを NestJS によって作成したことがあり、基礎的な概念や構成要素について何となくは把握したものの、どうもスッキリとは理解できていない気がする、というような方を想定しています。 この記事が自分のような NestJS 入門者のお役に

                                    NestJS の基礎概念の図解と要約
                                  • jestでDBありのテストを高速化する

                                    課題link お手伝いしているシステムでNestJSを採用しているバックエンドのテストが遅いという課題があったので対処した。 前提link フレームワークDBテストランナーその他 テストの総数は700弱。 最終結果link 最終的には2段階の改修を経てローカルのテストが3倍速程度高速化した。 # before Test Suites: 145 passed, 145 total Tests: 2 skipped, 681 passed, 683 total Snapshots: 0 total Time: 925.063 s Ran all test suites. Done in 926.48s. # ts-jestを@swc/jestに置き換えた Test Suites: 145 passed, 145 total Tests: 2 skipped, 681 passed, 683 t

                                      jestでDBありのテストを高速化する
                                    • NestJSをゼロから学ぶ - TypeORMの活用などをREST APIの実装から身に付けよう【Node.jsフレームワークの基本】|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                      このようにさまざまなデコレータが用意されていますが、今回はサンプルで利用するデコレータに絞って説明します。他のデコレータについては、NestJSの公式ドキュメントなどを参照してください。 依存性注入(DI) 依存性注入(DI、Dependency Injection)とは、クラスの依存関係を解決する仕組みです。NestJSでは、依存性注入を使ってクラスの依存関係を解決します。 クラスの依存関係とは、クラスが他のクラスに依存している関係のことです。例えば、次のようなクラスAがあったとします。このクラスは他のクラスに依存していません。@Injectable()デコレータを使って、サービスを定義します。 @Injectable() class A { constructor() {} } そして、次のようなクラスBがあったとします。このクラスは、@Inject()デコレータを使って依存性を注入し

                                        NestJSをゼロから学ぶ - TypeORMの活用などをREST APIの実装から身に付けよう【Node.jsフレームワークの基本】|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                      • GitHubのトレンドで振り返る2022年のJavaScript/TypeScript

                                        今年も GitHub トレンドから 2022 年の JavaScript/TypeScript を振り返ります。去年の記事はこちらです。 — GitHub のトレンドで振り返る 2021 年の JavaScript | WEB EGG 集計方法 本記事の集計期間は 2022/01/01〜2022/12/07、対象言語は JavaScript および TypeScript です。 なお GitHub がそのリポジトリをなんの言語と見なしてトレンドに掲載したかをもとに集計対象を決定していることにご留意ください。 別言語で書かれた Rust 製の JS 向けのツールや CSS フレームワークなどは基本的に対象外となります。 集計に利用したデータですが、GitHub は過去のトレンドを閲覧する方法を提供していないため、独自の仕組みで GitHub トレンドのアーカイブを生成しそのデータを利用しまし

                                          GitHubのトレンドで振り返る2022年のJavaScript/TypeScript
                                        • PythonでDDDやってみた💪 - techtekt

                                          はじめに 実行環境 ディレクトリ構造 app migrations/model pyproject.toml ソースコードと簡単な解説 app/core app/core/abstract app/core/decorator app/core/exception app/core/interface app/core/middleware app/core/mixin app/ddd app/ddd/application app/ddd/application/schema app/ddd/application/schema/studnet app/ddd/application/usecase app/ddd/application/usecase/student app/ddd/domain app/ddd/domain/student app/ddd/infra app/ddd

                                            PythonでDDDやってみた💪 - techtekt
                                          • 個人開発OSSが世界に勝てなかった話

                                            ゆーすけべー氏の「OSSで世界と戦うために」にインスパイアされました。5年間pyserdeというOSSのライブラリを開発・メンテしてきた筆者が、ちょっとだけ世界と戦ってみたけど全然勝てなかったという話です。Honoとはプロダクトの規模も開発にかける情熱も全然違うけど、単純にポストモーテムは読み物として面白いかなと思ったので書いてみます。また、5年間の開発で学んだやってよかったことや失敗などもシェアできればと思います。 pyserde pyserdeは筆者が2019年から開発メンテナンスしているOSSで、RustのserdeというライブラリにインスパイアされたPython用のシリアライゼーションフレームワークです。 以下のようにクラスを定義すると、型アノテーションに基づいたデータ変換やバリデーションのコードが内部的に生成され、強い型付けのクラスを生成することができます。強い型付けのクラスはラ

                                              個人開発OSSが世界に勝てなかった話
                                            • Python3.7以上のデータ格納はdataclassを活用しよう - Qiita

                                              はじめに Pythonでデータを格納する際に辞書や普通のクラスを使っていませんか?Python3.7からはデータ格納に便利なdataclassデコレータが用意されています。 この記事では公式ドキュメントやPEP557の説明ではいまいち掴めない、どういった時に便利で、なぜ使うべきなのかという点に触れつつ、使い方を説明していきます。 なお、以前のバージョンではPython3.6に限りpip install dataclassesによって使えるようになります。執筆時点ではGoogle Colaboratoryの環境がPython3.6.9ですが、デフォルトでdataclassesがインストールされています。 想定読者 dataclassの存在を知ったが何なのかよく分からない人 可読性高くデータを扱いたい人 「前はこんな機能なかったし、自分は別に使わなくて良いよ・・・」と思っている人 よく見かける

                                                Python3.7以上のデータ格納はdataclassを活用しよう - Qiita
                                              • Python Web UIフレームワークで作るデスクトップアプリ | gihyo.jp

                                                寺田 学(@terapyon)です。2024年4月の「Python Monthly Topics」は、Python Web UIフレームワークの1つであるStreamlitを使ってWindowsやmacOSのデスクトップアプリを作る方法を解説します。 目的⁠・モチベーション Pythonで自動化のスクリプトを作ったり、JupyterLabやColaboratoryでデータの可視化を行うことがあります。これらを作成者以外の多くの方に利用してもらう方法として、Webシステムやデスクトップアプリとして提供する方法が考えられます。 Webシステムの構築やデスクトップアプリの作成となると、技術的なハードルがあります。他には、時間的なコストに見合わないという状況もあり得ます。 Python Web UIフレームワークを使うことで、比較的少ないコードでWeb UIからスクリプトの実行や可視化をするアプリ

                                                  Python Web UIフレームワークで作るデスクトップアプリ | gihyo.jp
                                                • これから流行る言語 | 雑記帳

                                                  新言語にできることはまだあるかい なんとかWIMPS 最近(1ヶ月くらい前)、こんな記事が出ました: 新しいプログラミング言語が出てこない(新しく出てた言語を追記) – きしだのHatena Kotlin, TypeScript, Rust, Swift以降にみんなが話題にするような新しい言語が出てこない、それはなぜか、みたいな趣旨です。客観的に見れば「新しい言語は常に出続けている」わけですが、「みんなが話題にするような」というのが多分曲者なんでしょうね。 例え話をすると、新しい若木は常に生えてきているんだけど、大木に成長するには時間がかかるので、大木にしか興味のない人には「この8年間で新しい大木は登場していない」と判断してしまうのかもしれません。 まあ私としても、Web (HTTP) APIを書く言語とか、JSON色付け係が使う言語はもう出揃ってしまったのかもしれないという気はしなくもな

                                                  • 【AtCoder】Pythonで競プロをするときの注意点まとめ【競技プログラミング】 - Qiita

                                                    これは何? 競技プログラミングをPythonでやるときに注意すべき点をまとめました。 言語選択編 PythonがAtCoderには5種類ある AtCoderにはPythonの処理系が5つ入っています。具体的には Python (CPython 3.11.4) Python (Mambaforge / CPython 3.10.10) Python (PyPy 3.10-v7.3.12) Python (Cython 0.29.34) SageMath (SageMath 9.5) の5つです。それぞれ特徴があります。 Python (CPython 3.11.4) 一番オーソドックスなPythonです。 一般に(競プロ界隈でなく)Pythonというときはこれを指すと思います。 Python (Mambaforge / CPython 3.10.10) mambaforge経由で導入されたp

                                                      【AtCoder】Pythonで競プロをするときの注意点まとめ【競技プログラミング】 - Qiita
                                                    • Infrastructure from Code (IfC) ツールまとめ - maybe daily dev notes

                                                      昨今Infrastructure from Code (IfC)という概念をよく耳にします。先日もAWSのGregor Hohpeが関連する記事を書いていました。 architectelevator.com この記事では、Infrastructure from Codeとはなにか簡単に紹介し、具体的にどのようなツールがあるか網羅的にまとめます。 Infrastructure from Codeとはなにか Infrastructure from Code (IfC) とは、その名の通り、Infrastructure as Code (IaC) に関連する概念です。IaCとの根本的な違いは、IaCは開発者がインフラを明示的に意識して構成を記述するのに対し、IfCでは開発者がインフラをできるだけ意識しないよう抽象化を試みていることです。これにより、差別化に繋がらない重労働ができる限り排除された高

                                                        Infrastructure from Code (IfC) ツールまとめ - maybe daily dev notes
                                                      • メルカリ Shops での NestJS を使った GraphQL Server の実装 | メルカリエンジニアリング

                                                        ソウゾウの Software Engineer をやっています、@mookjp です。 8/10 の記事「メルカリShopsの技術スタックと、その選定理由」では、メルカリ Shops のアーキテクチャについて、その全体像を紹介しました。 この記事では、そのうちの BFF(Backend for Frontend) レイヤとして用意した GraphQL サーバについて、NestJS を使った実装例を交えて紹介します。 GraphQL とは GraphQL サーバ周辺の構成 NestJS とは GraphQL Module NestJS で Code First なスキーマ定義をする Object types の定義 Query と Mutation の定義 GraphQL スキーマの生成 スキーマの Breaking Change (破壊的変更)を防ぐ DataLoader を使って Bat

                                                          メルカリ Shops での NestJS を使った GraphQL Server の実装 | メルカリエンジニアリング
                                                        • pytest ヘビー🐍ユーザーへの第一歩 - エムスリーテックブログ

                                                          蛇行区間にはレールの内側に脱線防止ガードが設置される(本文とは関係ありません)。 こんにちは、エムスリー・エンジニアリングG・基盤開発チーム小本です。 pytest は Python のユニットテストのデファクトスタンダードです。エムスリーでも顧客向けレポートや機械学習でPython&pytest をヘビー🐍1に使っています。 ですが、実は pytest は、意外と入門のハードルが高い。と言うのも、pytest の公式ドキュメント が、fixtureのような新概念も登場する上、詳細で分量が多いからです(しかも英語)。初心者にいきなり読ませると挫折する可能性大です 2。 そこで、とりあえず使い始めるのに必要そうな情報を日本語でまとめました。 pytest ってどんなライブラリ? unittest や nose から簡単に移行できる 書き方がシンプル fixture モックもできる プラグイ

                                                            pytest ヘビー🐍ユーザーへの第一歩 - エムスリーテックブログ
                                                          • Python実践入門を執筆しました

                                                            2020年01月24日発売の「Python実践入門 ── 言語の力を引き出し、開発効率を高める」を執筆しました。 お話をいただいたのが2017年の終わり頃1で、そこから2年をかけてじっくりと書きあげました。 その間、レビュアーの方々には何度も何度もレビューをしていただき、自分でも納得のいく書籍となりました。 そこで、ここで著者として本書を紹介しておこうと思います。 対象読者と本書の紹介 Python実践入門は、主な対象読者に次のような方々を想定して書いています。 Pythonの入門書をやりきった方 入門書は一通りやったけどまだ自信を持てない Pythonを業務利用するのはまだ不安 他言語でのプログラミング経験者でこれからPythonを始める方 業務利用の経験はないが転職先やこの先の案件でPythonが必要になる 普段は別の言語を書いてるけどPythonを始めたい すでにPythonを書いて

                                                              Python実践入門を執筆しました
                                                            • 初めてのTypeScript

                                                              TypeScriptの本格的な入門書。TypeScriptは、世界で最もよく使われ、かつ最も好まれているプログラミング言語の1つです。本書では、JavaScriptの基礎的な知識のあるプログラマーを対象に、「型」や「型システム」の基本から、明快かつ包括的にTypeScriptを解説します。TypeScriptはバグやタイプミスを防ぎ、コードを読みやすくするのに有用なだけでなく、JavaScriptがどのように動くべきかを宣言し、それを維持するのに役立つ優れたシステムです。読者は本書を読むことで、TypeScriptの基礎と最も重要な機能をマスターできるでしょう。 賞賛の声 監訳者まえがき まえがき 第I部 TypeScriptの概念 1章 JavaScriptからTypeScriptへ 1.1 JavaScriptの歴史 1.2 バニラJavaScriptの欠陥 1.2.1 コストのかかる

                                                                初めてのTypeScript
                                                              • Flask実践入門 - 基本的なアプリ構成を問い合わせフォームをつくりながら学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                                                コンフィグ設定 まずはapps/config.pyを作成し以下のコンフィグを追加しましょう。実践的なアプリでは開発環境の他にstaging環境、本番環境、テスト環境などが存在するのでそれぞれ専用のコンフィグ設定を行います。 from pathlib import Path basedir = Path(__file__).parent.parent class BaseConfig: """ BaseConfigクラス """ SECRET_KEY = os.environ["SECRET_KEY"] WTF_CSRF_SECRET_KEY = os.environ["WTF_CSRF_SECRET_KEY"] class LocalConfig(BaseConfig): """ BaseConfigクラスを継承してLocalConfigクラスを作成する """ SQLALCHEMY_DA

                                                                  Flask実践入門 - 基本的なアプリ構成を問い合わせフォームをつくりながら学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                                                • デコレータ使わない Vue.js + TypeScript で進んだ「LINEのお年玉」キャンペーン

                                                                  皆さん、こんにちは。LINEでフロントエンド開発を担当しているUIT1室のシュウと申します。 今回、年に一度の企画「LINEのお年玉」キャンペーンにて JavaScript の部分を担当させていただきました。LINEのお年玉は多くのトラフィックが流れる大規模かつ短期間の企画となります。 技術的な挑戦をするためのプロジェクトとしてもちょうど良いサイズ感であったため、今回多くの挑戦を行いましたので、連載形式で紹介していければと思います。 初回である今回は、Vue.js と TypeScript を併用した開発についてです。 なぜ TypeScript を使うのか? これまで LINE のプロジェクトでは、JavaScript をメインの言語としてフロントエンド開発を行ってきました。ですが、時代の流れもあり、現在では新規プロジェクトの多くが TypeScript を採用しています。 月並みですが

                                                                    デコレータ使わない Vue.js + TypeScript で進んだ「LINEのお年玉」キャンペーン
                                                                  • RESTful APIをシュッと作る技術 - PythonとFastAPIでバックエンドを5時間ちょいで作ってみた - Lean Baseball

                                                                    久々に開発ネタです. 大晦日ハッカソン2019 #大晦日ハッカソンで, 野球のデータをシュッと見るためのDashboardを作る(理由は後ほど). そんなDashboardのBackend APIをシュッと開発する. を目標に立て現在進行系でやってるのですが, 午後の進捗その2 Docker化が特に滞りなく完了. API Docも見れるとかFast API強すぎぃ 昨日の夕方から開発してたAPIはアッサリ1st Ver.できたので, 大晦日の買い物終わったらフロントエンドを除夜の鐘が鳴るまでになんとかするぞ #大晦日ハッカソン pic.twitter.com/wWMiSvQDKu— Shinichi Nakagawa (@shinyorke) 2019年12月31日 Backendを昨日(12/30)の18:00から着手して(実質作業時間)約5時間ちょいで完成させてしまいました. 本年最後

                                                                      RESTful APIをシュッと作る技術 - PythonとFastAPIでバックエンドを5時間ちょいで作ってみた - Lean Baseball
                                                                    • Firebase をフロントエンドから適切に隠蔽するための「Hooks Injection パターン」 - JX通信社エンジニアブログ

                                                                      取締役の小笠原(@yamitzky)です。 JX通信社では、React 製のフロントエンドでも Clean Architecture で設計するなど、なるべく特定のバックエンドに依存しない設計を心がけたりもするのですが、一方で Firebase をラップした react-firebase-hooks などの「便利な Hooks」を使って開発スピードを加速したい、という課題を持っていました。 そして先日、次の記事が話題になっていました。まさに「どう Firebase を隠蔽するか」と「どう Firebase を活用するか」を両立する悩みです。 blog.ojisan.io 結論を言うと「Hooks そのものを注入する」のが筋が良いのではないか と思っています。個人的に「Hooks Injection パターン」と名付けたこの方法をご紹介したいと思います。 今回の記事の完成形はソースコードを公

                                                                        Firebase をフロントエンドから適切に隠蔽するための「Hooks Injection パターン」 - JX通信社エンジニアブログ
                                                                      • 機械学習について一回挫折してしまったエンジニアが何とかお仕事で機械学習を使えるようになるまで - Qiita

                                                                        初めに 4x歳越えのエンジニアにとって機械学習は何やらややこしいもの、本を開けば数式があり、pythonがあり、何それおいしいの?5年ほど前にCourceraで機械学習を学ぼうとしたがあっさりAndrew Ng先生はWeek4で挫折。"教師付き学習"と"教師なし学習"のちがいなんだっけ? 想定している読者 IT業界で別のキャリアを持っていて機械学習のキャリアをみにつけたい、あるいは身につけようとしたが挫折してしまった人 自分のキャリアについて ホストの開発エンジニアから始まり、クライアントサーバー、Webアプリと開発系を云十年。その後ネットワーク、インフラ系を主な仕事にしています。 機械学習とのかかわり 5年ほど前に機械学習の勉強をしようとしたが、何をやっているか意味が分からず、あっさり挫折。その後は雑誌などで読む程度。 注)データ分析・機械学種・人工知能については、この文章では厳密に分け

                                                                          機械学習について一回挫折してしまったエンジニアが何とかお仕事で機械学習を使えるようになるまで - Qiita
                                                                        • Pythonに上級テクニックは要らない(そして正しい付き合い方)~TechFeed Conference 2022講演より | gihyo.jp

                                                                          TechFeed Conference 2022 Pick up Pythonに上級テクニックは要らない(そして正しい付き合い方)~TechFeed Conference 2022講演より 本記事は、2022年5月に開催されたTechFeed Conference 2022のセッション書き起こし記事「Pythonに上級テクニックは要らない(そして正しい付き合い方)(⁠清原弘貴⁠)⁠ — TechFeed Conference 2022講演より」を転載したものです。オリジナルはTechFeedをご覧ください。 Pythonに上級テクニックは要らない、そして正しい付き合い方ということで発表します、清原です。 株式会社ゼンプロダクツというのを最近立ち上げまして、日本語を書けばAIが文章を校正してくれる、Shodoというサービスを本気で作っています。Markdownでも書けて、はてなブログに配信で

                                                                            Pythonに上級テクニックは要らない(そして正しい付き合い方)~TechFeed Conference 2022講演より | gihyo.jp
                                                                          • プログラミングスクールで、「リアルバーチャルYoutuber」というWebサービスを作りました - 猫Rails

                                                                            はじめに 作ったWebサービスの紹介 開発日誌 Getting Realを読む エレベーターピッチを作る 技術検証 ペーパープロトタイプを作る 技術選定とシステム構成図の作成 開発の進め方を考える $ rails new Herokuをセットアップ 独自ドメイン設定 + SSL化 SendGridをセットアップ S3 + CloudFrontをセットアップ Googleアナリティクスをセットアップ Googleサーチコンソールをセットアップ ロゴ・ファビコンを作る サイトマップを自動作成 metaタグを設定する Rubocopを設定する 便利Gemを導入する bullet letter_opener letter_opener_web xray-rails pry-rails pry-byebug pry-doc pry-alias awesome_print tapp rack-mini

                                                                              プログラミングスクールで、「リアルバーチャルYoutuber」というWebサービスを作りました - 猫Rails
                                                                            • 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
                                                                              • TypeScriptの公式チートシートを読んだ - dackdive's blog

                                                                                先週の This Week In React に流れてきたやつ。 🧵 TypeScript Cheat Sheets by @orta 4 nicely designed and official cheatsheets now online: - Types - Interfaces - Classes - Control Flow Analysishttps://t.co/fnqAcuU8c8 pic.twitter.com/D7BlZsyvjf— Sebastien Lorber 🇫🇷 🦖 ⚛️ 📨 (@sebastienlorber) 2022年1月19日 ざっと読んでみたけどそこまで目新しい発見はありませんでした。以下メモ。 💬 はコメント。 Classes https://www.typescriptlang.org/static/TypeScript%20Clas

                                                                                  TypeScriptの公式チートシートを読んだ - dackdive's blog
                                                                                • あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記

                                                                                  この記事はScala Advent Calendar 2023の11日目です. 最近, 趣味でScala 3のコードをだいぶ書いていて, マクロの使い心地のよさに感心しました. 理論的な背景も含めて, 産業界で多く使われているプログラミング言語の中では筆者の知る限りぶっちぎりに優れたマクロを備えています. 他の言語にも見習ってほしいですね. たぶん見習おうとすると処理系を作り直す羽目になりますが. この記事ではScala 3のマクロのすごいところを例を使って紹介します. マクロの実践的な例 準備 実践的な例: NamedArray – 名前でアクセスできる配列 NamedArrayのマクロ実装 記述が明瞭 メタレベルのプログラムの扱い クォートとスプライスがある パターンマッチもある 生成コードに型がつく 多段階計算に基づいている クォートとスプライスの本当の意味 ネストしたスプライス ネ

                                                                                    あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記