並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 193件

新着順 人気順

Progの検索結果41 - 80 件 / 193件

  • Rust を始めるための資料集 - Don't Repeat Yourself

    かとじゅんさんのお誘いで、私塾匠真堂にて登壇させていただき、Rust に関する話をさせていただきました。ありがとうございました。 今回のセッションを通じて Rust を始めたくなった方向けに、Rust をはじめるための資料をいくつかリストアップしてます。よかったらどうぞ。 プログラミング言語の学習方法について Rust についてまず概観を掴む 文法を学ぶ 何かアプリケーションを実装してみる ちょっと突っ込んだ話を知りたい コミュニティの力を借りる 仲間を見つける 更新履歴 プログラミング言語の学習方法について みなさんは新しいプログラミング言語を学ぶ際、どのように学びますか? 私は、軽く制御構文やデータ型の作り方などを学んだ後は、すぐにアプリケーションを作ってみて、詰まったらリファレンスを参照するといった学び方をしていることが多いです。 逆に、リファレンスをまず眺めて、文法をしっかり把握し

      Rust を始めるための資料集 - Don't Repeat Yourself
    • 電子情報学特論:Chromiumのアーキテクチャを解き明かす

      電子情報学特論: Chromium のアーキテクチャを解き明かす 〜 EEIC の授業が生きるプロダクトの世界〜 Kentaro Hara 2022 April (๑>ᴗ<๑) * * * *

        電子情報学特論:Chromiumのアーキテクチャを解き明かす
      • Command Line Interface Guidelines

        Contents Command Line Interface Guidelines An open-source guide to help you write better command-line programs, taking traditional UNIX principles and updating them for the modern day. Authors Aanand Prasad Engineer at Squarespace, co-creator of Docker Compose. @aanandprasad Ben Firshman Co-creator Replicate, co-creator of Docker Compose. @bfirsh Carl Tashian Offroad Engineer at Smallstep, first e

          Command Line Interface Guidelines
        • 1,000行で作るオペレーティングシステム

          「Writing an OS in 1,000 Lines」 というオンラインブックを書きました。ゼロから1,000行でOSを作るという内容です。 『自作OSで学ぶマイクロカーネルの設計と実装』 とは違い、最初の一歩の部分を重点的に解説しています。シンプルなモノリシックカーネル設計で、実装の解説だけでなくカーネルプログラミング特有の難しい部分、特に「カーネルをどうデバッグすれば良いか」をおさえた、初学者向きの内容になっています。 3日ほどあれば済むボリュームです。夏休みの自由研究がてら、ぜひチャレンジしてみてください。

            1,000行で作るオペレーティングシステム
          • プログラミングの命名規則ガイドラインを規定するオープンソースプロジェクト「NamingConvention」

            ◆ NamingConvention https://namingconvention.org/ 紹介 「NamingConvention」は、プログラミング命名規則のガイドラインを作成・収集・維持するオープンソースプロジェクトです。 「C#・Git・Java・PHP・VueJS・Python」が、現在作成進行中です。 Gitの章には、ブランチ名やコミットメッセージ、プルリクのネーミング規定が記載されています。 例えば、ブランチネームだと必須や許可と一緒に例文も記載されています。 プログラミング言語(Java)だと、このようになっています。 推奨のネーミングというより、キャメルケースなど、最低限準拠すべき形式が書かれています。 プログラミング版wikipediaになるような、熱量高いコミュニティが続いて欲しいです。 ◆ NamingConvention https://namingconv

              プログラミングの命名規則ガイドラインを規定するオープンソースプロジェクト「NamingConvention」
            • 管理画面用のレイアウトやUIコンポーネントがほとんどすべて揃った、商用利用無料のHTMLテンプレート -Stisla

              商用のプロジェクトでも無料で利用できる、管理画面・ダッシュボードのレイアウトやUIコンポーネントが揃ったテンプレートを紹介します。 このテンプレートを使用すると、管理画面・ダッシュボードで必要なコンテンツを簡単に作成できます。 Stisla 管理画面・ダッシュボードに特化されたUIコンポーネントがほとんどすべて揃ったテンプレート。 30以上のサードパーティのライブラリと統合、多くのコンポーネントを簡単に利用できます。 HTML5とCSS3で記述されており、すべてのモダンブラウザでサポートされています。 Bootstrap 4をベースに、Flexboxでレイアウトされています。 一部のコンポーネントにはより簡単にやり取りするために、JavaScript APIを使用。 MITライセンスで、商用プロジェクトでも無料で利用できます。

                管理画面用のレイアウトやUIコンポーネントがほとんどすべて揃った、商用利用無料のHTMLテンプレート -Stisla
              • Spectre の脅威とウェブサイトが設定すべきヘッダーについて

                長い記事なので先に結論を書きます。 Spectre の登場で、ウェブサイトに必要とされるセキュリティ要件は増えました。具体的に必要な対策は下記の通りです。 すべてのリソースは Cross-Origin-Resource-Policy ヘッダーを使って cross-origin なドキュメントへの読み込みを制御する。 HTML ドキュメントには X-Frame-Options ヘッダーもしくは Content-Security-Policy (CSP) ヘッダーの frame-ancestors ディレクティブを追加して、cross-origin なページへの iframe による埋め込みを制御する。 HTML ドキュメントには Cross-Origin-Opener-Policy ヘッダーを追加して popup ウィンドウとして開かれた場合の cross-origin なページとのコミュニ

                  Spectre の脅威とウェブサイトが設定すべきヘッダーについて
                • フロントエンドエンジニア御用達の MDN web docs を網羅した

                  このリストは何? MDN web docs を、あたかも書籍の目次かのごとく整理しなおしたものです。それぞれ MDN web docs の記事へリンクしています。 なぜこれが必要になったかというと、人材市場でフロントエンドエンジニアが少なすぎる現状をどうにかするべく教育体制を整えるところから考え始めたのですが、それならまずは日頃お世話になっている MDN web docs を教材として扱いたいなと思ったからです。慣れてきてもよく参照するし「アレどこだっけなぁ?」を軽減もしやすいかなって。 MDN web docs は内容そのものはかなり充実しているものの、リンクがあらゆる方向に張り巡らせられており ある一定の流れに沿って読む ということが少々難しい側面もあります。特に初学者にとっては、迷子になりやすいかもしれません。 ですので、初学者でも学習しやすいように MDN web docs 全体の

                    フロントエンドエンジニア御用達の MDN web docs を網羅した
                  • PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記

                    PHPとPythonとRubyの連想配列のデータ構造がそれぞれ4〜5年ほど前に見直され、ベンチマークテストによっては倍以上速くなったということがありました。具体的には以下のバージョンで実装の大変更がありました。 PHP 7.0.0 HashTable高速化 (2015/11) Python 3.6.0 dictobject高速化 (2016/12) Ruby 2.4.0 st_table高速化 (2016/12) これらのデータ構造はユーザーの利用する連想配列だけでなく言語のコアでも利用されているので、言語全体の性能改善に貢献しています1。 スクリプト言語3つが同時期に同じデータ構造の改善に取り組んだだけでも面白い現象ですが、さらに面白いことに各実装の方針は非常に似ています。独立に改善に取り組んだのに同じ結論に至ったとすれば興味深い偶然と言えるでしょう2。 本稿では3言語の連想配列の従来実

                      PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記
                    • UTF-8のテーブル(MySQL5.6)に竈門禰󠄀豆子が格納できない問題を調べてみた - Qiita

                      竈門禰󠄀豆子をMySQL5.6のテーブルにinsertしようとすると正しく格納できず、竈門禰となってしまうケースがあるという話を聞き、調べてみました。 実践 まずは試しにやってみます。 mysql> show create table verification\G *************************** 1. row *************************** Table: verification Create Table: CREATE TABLE `verification` ( `name` varchar(100) COLLATE utf8_bin DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin 1 row in set (0.01 sec) mysql> inse

                        UTF-8のテーブル(MySQL5.6)に竈門禰󠄀豆子が格納できない問題を調べてみた - Qiita
                      • オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling

                        Jetpack ComposeとGraphQLによるServer Driven UI/jetpackcompose-grahpql-serverdrivernui

                          オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling
                        • Linus Torvalds 氏の理想の git 運用と GitHub

                          Note 本記事の内容は Linus 氏の発言が人を傷つける場合に筆者がそれを良しと考えるといった意図はございません 少し古い記事になるが、 Linus Torvalds 氏 の GitHub に対する苦言が記事になっていた。 LinuxカーネルにNTFSドライバーが追加、トーバルズ氏はGitHub経由のマージに苦言 - ZDNet Japan Linus 氏が GitHub について苦言を呈するのは今に始まったことではない(後述)が、 別に GitHub のすべてを否定しているわけではない。[1] では一体何が不満なのか。Linus 氏の理想とする git の開発フローを考察した上で、整理してみたい。 Linus 氏の理想 結論からいうと、 「意味あるコミットを作れ」「コミットを大事にしろ」 という思想が伺える。 では 「意味あるコミット」「大事にされたコミット」 とは何なのか。 筆者な

                          • シェルスクリプトを書くのをやめる - blog.8-p.info

                            今年から、できるだけシェルスクリプトを書くのをやめようとしている。私が毎日 zsh に打ち込んでいるのも広義のシェルスクリプトだし、自分用の雑なスクリプトを書くことはあるけれど、チームの他の人も将来に使ったり改変したりするようなものは、なるだけ他の言語を使っている。 シェルスクリプトを書くのは難しいし、その難しさは、学ぶに値しないといったら言い過ぎかもしれないけれど、2021年に初心者が取り組むべき問題とは言い難いと思う。 シェルは悪いプログラミング言語である Bash Strict Mode とかを使ってみても、シェルスクリプトには落とし穴が多すぎる。自分で書いたものを自分で使っている分には大丈夫なのだけど、スクリプトがチーム内で使われるようになると、考慮していなかったところ、例えばファイル名に空白文字が含まれるとか、そういうレベルの微妙なところで、ちゃんと書かれていないスクリプトは壊れ

                            • RSAの終わりの始まり - 暗号移行再び - Qiita

                              前振り 全国の暗号を使うエンジニアの皆さんこんにちは。今日は暗号移行とRSA暗号の話をしたいと思います。まず暗号を利用している皆さんであればCRYPTRECの「電子政府推奨暗号リスト」のことはご存じですよね!(言い切るw) CRYPTRECから2022年7月(昨年夏)に暗号強度要件(アルゴリズム及び鍵長選択)に関する設定基準(PDF直リンク)が公開されました。この中では暗号のセキュリティ強度で各種暗号と鍵長が整理されています。セキュリティ強度はビットセキュリティと呼ばれるビットサイズ(共通鍵暗号の場合のビット長)で区分されます。暗号アルゴリズムが違ってもセキュリティ強度で比較ができるということですね。例えば現在一般的に良く使われているセキュリティ強度は112ビットセキュリティが多く、これにはデジタル署名であればRSA暗号の2048ビットやECDSAのP-224等が含まれます。今日は公開鍵暗

                                RSAの終わりの始まり - 暗号移行再び - Qiita
                              • 20年間ソフトウェアエンジニアとして働いて学んだ20個のことまとめ

                                By Sergey Galyonkin ソフトウェア開発企業・Simple Threadの創設者であるジャスティン・エセリッジ氏が、ソフトウェアエンジニアとして20年活動した経験を基に、学習において重要なポイントやコーディングにおいて意識するべきポイントなどを20個にまとめて公開しています。 20 Things I've Learned in my 20 Years as a Software Engineer - Simple Thread https://www.simplethread.com/20-things-ive-learned-in-my-20-years-as-a-software-engineer/ ◆1:自分がまだ多くを知らないことを自覚する エセリッジ氏は、たとえ何十年間ソフトウェアエンジニアとして働いたとしても、それぞれのエンジニアが持つ知識には違いがあり、他のソ

                                  20年間ソフトウェアエンジニアとして働いて学んだ20個のことまとめ
                                • 早期ミスマッチ解消のために、職務経歴書のガイドを公開しました - スタディサプリ Product Team Blog

                                  こんにちは、Web Engineer の @wozaki です。 今回は、採用プロセスの改善として、職務経歴書に記載いただきたいことを公開した背景をご紹介します。 概要 職務経歴書に、採用チームとして期待する情報が不足していることがある 不足すると、以下の課題が発生することがある 書類選考は通過するが、その後の選考でミスマッチと分かる (経歴書が充足していたら、より早期にミスマッチが分かったかもしれない) 面接の前に経歴に踏み込んだ質問を設計できずに、面接時間内でマッチしているか情報を引き出す難易度が上がる 既存の対策として、情報の追記をお願いすることがある 新たな対策として、記載いただきたいことを ガイドとして公開 することにした 記載いただきたいこと 早期ミスマッチ解消の必要性 Web Engineer の採用は競争が激化している肌感があります。 応募者の方々にとっても、様々な企業の中

                                    早期ミスマッチ解消のために、職務経歴書のガイドを公開しました - スタディサプリ Product Team Blog
                                  • ブラウザにおけるメモリリークを解決するために読んでおけると良い資料 - mizdra's blog

                                    最近趣味や仕事の Web アプリケーションでメモリリークに遭遇して、頑張ってメモリリークの原因を突き止めて修正する、ということがあった。その過程でメモリリークについて色々調べて知見が溜まったので、学習資料の紹介という形でアウトプットしてみる *1。 前置き 紹介する記事がかなり偏っていることに注意 冒頭で触れたメモリリークを解決するために読んだ記事をまとめただけなので、内容にそれなりの偏りがある 例えば id:mizdra が遭遇したメモリリークは全てブラウザ上で発生していたものだったので、これから紹介する内容も主にブラウザにおけるメモリリークに焦点を当てたものになる GC がどうメモリをどう解放しているか、何故メモリリークが発生するのかは全てカット 調べれば色々な記事が出てくるので、必要に応じて読んでください 基本的な知識を抑える まずメモリリークとメモリ撹拌の違いを学ぼう どちらも同じ

                                      ブラウザにおけるメモリリークを解決するために読んでおけると良い資料 - mizdra's blog
                                    • Dockerのポートマッピングのデフォルト設定は危ない - JUNのブログ

                                      あらすじ 公衆WiFiに繋いだ状態でいつものように docker container run -p 8080:80 nginx のような感じでDockerコンテナを動かしていたら、外部からリクエストを受信した。 ファイアウォールを設定し、外部からのアクセスを拒否しているはずなのになぜアクセスできたんだ... 環境 Docker desktop for mac with apple silicon 4.21.0 何が起きた? Dockerはデフォルトの設定では-p 8080:80のようにポートマッピングするとファイアウォールの設定を書き換え、外部からそのポートへのアクセスを許可するようになっている。 その結果LAN内の他のPCから対象ポートにアクセス出来てしまう。 ちなみにこれはDocker公式からも注意が出ている。 Publishing container ports is insecur

                                        Dockerのポートマッピングのデフォルト設定は危ない - JUNのブログ
                                      • This is The Entire Computer Science Curriculum in 1000 YouTube Videos

                                        This is The Entire Computer Science Curriculum in 1000 YouTube Videos In this article, we are going to create an entire Computer Science curriculum using only YouTube videos. The Computer Science curriculum is going to cover every skill essential for a Computer Science Engineer that has expertise in Artificial Intelligence and its subfields, like: Machine Learning, Deep Learning, Computer Vision,

                                          This is The Entire Computer Science Curriculum in 1000 YouTube Videos
                                        • Electronで組み込み端末向けアプリケーションを開発し3年間運用してみて

                                          組み込み端末のアプリケーションに Electron を採用し開発・運用を行っています。 継続的な機能追加やトラブルサポートを行いながら 3 年が経過したので、Electron を採用した経緯や結果を経験を交えながら共有したいと思います。 組み込み案件自体が初めてでしたのでその話も入っています。 約 700 台ほど導入されており、なかなか大きな案件での採用と思いますので参考になれば幸いです。 ※Electron の基本的な説明は割愛します。 システムについて 一般的に「受付精算機」などと呼ばれ、店頭に何台か並べて設置して自動で受付・精算を行うシステムです。 ホテルの受付端末のイメージです。ハード的にはセルフレジにも近いです。 筐体自体は他社が用意し、弊社はその上に載せる GUI アプリケーションのみを担当しました。 機能 主な機能として 来店受付・整理券発行 予約チェックイン チェックアウト

                                            Electronで組み込み端末向けアプリケーションを開発し3年間運用してみて
                                          • プログラマーの教養としての原則

                                            参考 プリンシプル オブ プログラミング - 3年目までに身につけたい一生役立つ101の原理原則 発行: 2016/3/23 著者: 上田 勲 まえがき プログラマーの世界で語り継がれる原則や格言を知ることは、その共通の言語や道徳を理解する手助けとなります。 『プリンシプル オブ プログラミング』(以下、プリプロ)は、統一された語句と形式により、先人のプログラマーたちが重要視していた思考法やアプローチを、微妙な概念の違いに気を使うことなく理解できるよう構築されています。この記事では、この本を読む上で役立つ101の原則マップと原則から抽出した価値観をまとめます。プリプロを読む際のガイドになればと思います。 一方で、プリプロに収録されていないウィットに富んだ原則や格言も多く存在します。この記事では、主に私の現場で重要視しているプリプロの101の原則以外の原則・格言も追加で紹介します。 プログラ

                                              プログラマーの教養としての原則
                                            • 2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog

                                              こんにちは。労働者です。とあるプログラムで学生さんの課題を添削していたら面白い話に出会いました。 僕は今、主に学部生向けのインターン研修的なプログラムでメンターなるものをやっています。メンターとしての仕事は、学生さんの課題へフィードバックを返し、Office Hourというセッションを毎週設けて質問受けやCSに関するトークを行うといった内容になっています。今回話題に取り上げるのはその中の課題の1つ、「行列積のプログラムを書いて時間を計測せよ」という何気ない話で、続く課題たちのいわば前座のようなものです。こういったところに沼は隠されているものですね。 担当している学生さんたちが細かい実験を行ってくれて以下のような疑問が提示されました。 「行列積の計算が N = 1024のときだけ N = 1023, 1025のときに比べて3倍遅いのはなぜ?」 配列のサイズが2のべき乗になるのは避けるべきとい

                                                2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog
                                              • 40歳を過ぎてもソフトウェアエンジニアを続けてるって話 - Mitsuyuki.Shiiba

                                                昨日、ゆのんさん( https://twitter.com/yunon_phys )が社内の勉強会で「エンジニアリングマネージャとは?」って話をしてくれて、面白いなぁって思いながら聞いてた。 今日は @yunon_phys が社内勉強会で、エンジニアリングマネージャについてお話をしてくれてとてもよかった。こんな話が社内で聞けるのって福利厚生だなぁと思いながら聞いてた。— SHIIBA Mitsuyuki (@bufferings) October 13, 2023 その中で「エンジニアリングマネージャが見ることのできる範囲はめちゃ広いから、すべてを完璧にしようとするんじゃなくて、その場に応じてスキマを埋めるような動きができるといい。組織の成長とともにその動きも変わっていく」ってことを言っていて、これって自分のソフトウェアエンジニアとしての動きにも似たところがあるなぁと思ったので雑にメモ。

                                                  40歳を過ぎてもソフトウェアエンジニアを続けてるって話 - Mitsuyuki.Shiiba
                                                • 2021年現在Vueを選択すべきでないと思う理由

                                                  使ってわかる、Vueへの恨み、つらつらと(随時更新) コンポーネントのローカルスコープでコンポーネントを定義しようとするとJSXが必要 JSXが嫌でReactを使わないならSvelteがあり、SvelteはゼロオーバーヘッドでVueより速い React+JSXと違って、マークアップをJavaScriptの式として扱えないせいで、TypeScriptとの相性も悪い 後述するが、コンポーネントのプロパティの型をジェネリックにできないところなどは、これの例にあたる Vueの新しい機能が出て、新しい構文を必要とするたびにIDEのプラグインの対応が必要になる JSXも構文拡張だが、JS関数呼び出しのシンタックスシュガーでしかないので、関数と同じだけの表現力(汎用性)を持ち、ReactのAPI拡張のためにいちいちJSXまで拡張する必要はない JSX無しだと、マークアップ内でアクセスしたいコンポーネント

                                                    2021年現在Vueを選択すべきでないと思う理由
                                                  • なるべくお金をかけずに個人アプリを運用したい - くりにっき

                                                    前々からこの手のことを書きたいとは思ってたけど id:k0kubun さんの下記エントリに触発されて書きました。 k0kubun.hatenablog.com tl;dr; 個人アプリ開発歴 前提 Heroku GCP Google App Engine Cloud Run Firebase Cloud Functions GitHub Pages 2022/8/14追記 GitLab Pages 2022/5/7 17:00追記:ブコメレス tl;dr; HerokuやFirebaseを駆使すれば割と無料でいける 若干お金を払えばもっと選択肢は増える 個人アプリ開発歴 2001~2002年あたりから個人HPでアプリを公開。後にVectorにも公開 アカウントは残ってるのでいまだにVectorからのレポートメールが毎月届いてます 2009年くらいから色々ウェブアプリを開発 Google A

                                                      なるべくお金をかけずに個人アプリを運用したい - くりにっき
                                                    • 2019年末版 形態素解析器の比較 - Qiita

                                                      形態素解析は日本語処理の初歩であり、文を単語に分割したり、品詞や活用形、基本形を分析するために行います。本記事では形態素解析のツールをいくつかの出力例を交えて比較していきます。 (SentencePieceでいいじゃん、という人はお呼びでないですが、そういう方には、Twitterのトレンドが変な分割になってたら嫌では?と申し上げておきたいです) MeCab 言わずと知れた形態素解析器。とりあえずMeCabを使うという人は今なお多いことでしょう。とにかく高速であるということと、システムと辞書が分離されているのが特徴です。またPythonから使うのも簡単になりました(Janomeというものがありましたがmecab-python3の方が高速です)。Javaから使いたい人はKuromojiを使えばmecab(+ipadic)相当の結果が得られるはずです。 辞書はIPA辞書が推奨されていますが、Un

                                                        2019年末版 形態素解析器の比較 - Qiita
                                                      • はじめに — Python早見帳

                                                        Python早見帳は、プログラムと実行例をカタログ的に提示しながら、Pythonの言語仕様やライブラリを紹介しています。Pythonの基礎を素早く習得したり、ライブラリやオブジェクトの使い方を確認することができます。

                                                          はじめに — Python早見帳
                                                        • 名著「入門UNIXシェルプログラミング」の超詳細なレビューをしてみた(古い内容の訂正) - Qiita

                                                          はじめに そりゃまあ 30 年も経てば古くなりますよ。「入門UNIXシェルプログラミング」は今もシェルスクリプトに関するオススメの本として名前が挙がる名著です。しかしこの本は古い本です。POSIX でシェルが標準化される以前の本で、内容から判断するとおそらく 1990 年ぐらいの常識に基づいて書かれています。 古いから参考にならないと言うつもりはありません。しかしどれだけ優れた本でも時間の流れには勝てません。良書であると思っているからこそ、古くなってしまった内容は訂正する必要があると考えています。なおシェルスクリプトに関する古い本はこれだけではありません。オライリーから出版されている本も古い本ばかりです。いつ頃に(原書が)書かれた本なのかを確認した方が良いでしょう。 ということでレビューというていで、古くなってしまった内容の訂正を行いたいと思います。新しく「入門UNIXシェルプログラミング

                                                            名著「入門UNIXシェルプログラミング」の超詳細なレビューをしてみた(古い内容の訂正) - Qiita
                                                          • エラーは出ないけど…何か変??Vue.jsでやりがちな「サイレント・ミス」(ロジック編) - ICS MEDIA

                                                            Vue.jsは初学者にもとても手厚いサポートを提供してくれるフレームワークです。 たとえば、以下のコードで「リセット」ボタンを押すと「propsのcountは子コンポーネントから変更すべきではない」とわかりやすくエラーを表示してくれます。 <template> <div class="CountViewComponent"> カウント={{count}} <button @click="reset">リセット</button> </div> </template> <script> export default { props: { // 表示するカウント値 count: { type: Number, default: 3 } }, methods: { // カウントをリセットします reset() { this.count = 0 } } } </script> それでも時として、

                                                              エラーは出ないけど…何か変??Vue.jsでやりがちな「サイレント・ミス」(ロジック編) - ICS MEDIA
                                                            • スケールする要求を支える仕様の「意図」と「直交性」 - Qiita

                                                              はじめに どんなソフトウェアエンジニアも拡張しやすくメンテナンスしやすいソフトウェアを作りたいと思っているはずです。また、どんなプロダクトマネージャも同様に拡張しやすいシンプルな要求を作りたいと考えているはずです。 しかし、将来の不確実性や発展性に対して見通しを立てるのは難しいものです。そのため、開発チームの思いとは裏腹にソフトウェアの複雑性はどんどんと増大していきます。気がついたら技術的負債と呼ばれるような手もつけられない泥団子になってしまうということもしばしばです。誰もが生産性を下げるために機能を追加したいわけではなく、ビジネス価値を提供するために機能を追加したいだけなのにです。 このような状況を避けるためにはどうしたらよいのでしょうか。今回はその一つの手段として、要求には隠れた「意図」があり、それを発見していくことの重要性についてまずはお話しします。さらにわかりやすい要求が持つ仕様の

                                                                スケールする要求を支える仕様の「意図」と「直交性」 - Qiita
                                                              • 今は、もう、動かない、その User-Agent 文字列

                                                                ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、広告エンジニアの中山です。 唐突ですが、みなさまの Web アプリケーションに User-Agent 文字列を参照する処理はありますか? User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.1234.56 Safari/537.36例えば User-Agent 文字列を解析して内容に応じて制御を分岐させたり、機械学習の特徴量として用いたり、さらには一般に悪しきユースケースとされていますが IP アドレスと組み合わせて fingerprinting に活用する … と

                                                                  今は、もう、動かない、その User-Agent 文字列
                                                                • 現代のオブジェクト指向の class の割れ窓化と宣言的プログラミング

                                                                  オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだの Hatena の件。基本的には同意。ただちょっと切り口が違うので自分の意見を言っておく。ただ、このテーマで何度か書こうとして失敗していて、今回も成功しているとはいえない。 宣言的プログラミングの時代 現代の主流は「宣言的プログラミング」であると思っている。これはリソースの宣言と、その状態遷移の手続きや振る舞いの付与が中心にある。 宣言型プログラミング - Wikipedia その代表的な例がフロントエンドの React と、バックエンドの k8s で、どちらも時系列に基づいた状態の宣言と、フレームワーク側による状態遷移処理、 Reconcillation(調停) が基礎にある。 フロントエンドとバックエンドという両極端な世界で、この変化が起きたのがこの時代を反映したものであると思う。 例えば、jQuer

                                                                    現代のオブジェクト指向の class の割れ窓化と宣言的プログラミング
                                                                  • POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita

                                                                    POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき!ShellScriptBashshellPOSIX はじめに find の出力を xargs にパイプで渡すというのはよく見かける使い方ですが、find -print0 | xargs -0 が使えない POSIX 準拠のシェルスクリプトでは find -exec {} + を使った方が良いです。安全かつ十分に速いからです。よく見かける -exec {} ; ではなく -exec {} + ですので間違えないようにしてください。多くのケースでは + の方が優れているのですが ; ばっかり使われているのを見ると、意外と知られてない気がします。 少しだけ予備知識として、-exec {} ; は -exec {} \; と ; をバックスラッシュでエスケープするのがよく見る使い方

                                                                      POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita
                                                                    • いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita

                                                                      いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう!ShellScriptBashLinuxUNIXmacOS はじめに [ $? -eq 0 ] や [ $? -ne 0 ] は冗長でデメリットしかありません。非常に多く見られる書き方ですが、Bourne シェルの時代からこのようなコードは必要ありませんでした。 優れたコードとは無駄がないコードです。丁寧なコードとは無駄な処理を書くことではありません。優れた文法を持つシェルは短いコードで正しく動作します。[ $? -eq 0 ] や [ $? -ne 0 ] を書かないほうがコードはわかりやすくなります。コマンドのエラー処理を簡潔に書くことができることが、シェルスクリプトの優れている点の一つでありシェルスクリプトを書く理由の一つです。 じゃあどう書くの? こうです。

                                                                        いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita
                                                                      • Google Best Practices for Java Libraries

                                                                        Google Best Practices for Java Libraries Google Best Practices for Java Libraries are rules that minimize problems for consumers of interconnected Java libraries. These practices come from decades of aggregated experience in maintaining open source Java libraries and are informed by many hard-learned lessons from mistakes that have been made. We have found that following these rules results in hig

                                                                        • Vue___Vuex_のアーキテクチャ完全に理解した.pdf

                                                                          [RubyKaigi 2024] Ruby Mixology 101: adding shots of PHP, Elixir, and more

                                                                            Vue___Vuex_のアーキテクチャ完全に理解した.pdf
                                                                          • Googleのソフトウェアエンジニアリング文化

                                                                            Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                                                                              Googleのソフトウェアエンジニアリング文化
                                                                            • 使いやすさを重視したHTMLスクレイピングライブラリを作った - 純粋関数型雑記帳

                                                                              TL:DR レポジトリ https://github.com/tanakh/easy-scraper ドキュメント 背景 このところ訳あってRustでHTMLからデータを抽出するコードを書いていたのですが、 既存のスクレイピングライブラリが(個人的には)どれもいまいち使いやすくないなあと思っていました。 HTMLから望みのデータを取り出すのはいろいろやり方があるかと思いますが、 ツリーを自力でトラバースするのはさすがにあまりにも面倒です。 近頃人気のライブラリを見てみますと、CSSセレクターで目的のノードを選択して、 その周辺のノードをたどるコードを書いて、 欲しい情報を取り出すという感じのものが多いようです。 RustにもHTMLのDOMツリーをCSSセレクターで検索して見つかったノードをイテレーターで返してくれたりする、 scraperというライブラリがあります。 例えば、<li>要素

                                                                                使いやすさを重視したHTMLスクレイピングライブラリを作った - 純粋関数型雑記帳
                                                                              • 6502 アセンブラ プログラミング入門 / 新山 祐介

                                                                                概要: この記事では 8ビット CPU 6502 を 使ったアセンブラプログラミングを紹介する。 「アセンブラプログラミング」とは、プログラミング言語を使わず、 CPU のネイティブ命令列を直接書くプログラミング方法である。 6502 はいまから約50年前に開発され、 ファミコンや Apple II など多くのハードウェアで利用された。 しかし、その原理は今日のコンピュータとほとんど変わっていない。 ここでは 6502 のプログラミングを通して、コンピュータの本質を学ぶ。 6502 プログラミング入門 コンピュータの原理 レジスタとは 16進数とは 6502エミュレータを使った演習 メモリに値を格納する メモリの値を増加させながらループする アセンブラを使ったプログラミング 最初のプログラム (改良版) アセンブラを使ったジャンプ命令 差分アドレッシング 条件分岐 条件分岐 その2 16ビ

                                                                                • 良いソフトウェアとコードレビュー / Good software and code review

                                                                                  Scala + Caliban で作るGraphQL バックエンド / Making GraphQL Backend with Scala + Caliban

                                                                                    良いソフトウェアとコードレビュー / Good software and code review

                                                                                  新着記事