You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
PDFのみの提供です 紙書籍も必要な場合は、こちらからお得なセットをお求めください 紙書籍のみを差額等でお求め頂くことはできません 型システムがようやくわかった! 遠藤侑介 著 184ページ A5判 ISBN:978-4-908686-20-7 2025年4月15日 第1版第1刷 本書の解説で利用しているコード(GitHubリポジトリ) 現代の開発環境では、エディタ上でコードを書いている最中から、実行もせずにエラーが判明することがあります。コードの補完でも、文脈に適した候補が魔法のように提示されてきます。こうした機能で中心的な役割を果たすのが「型システム」です。 では、なぜ型システムはプログラムのエラーを早期に発見したり、適切な補完候補を絞り出せたりするのでしょうか? 背景となる数学の理論を教科書で学ぶ以外に、型システムで何ができるのか、どのように機能するかを知る道はないのでしょうか? 本
ソフトウェアは複雑さを増すばかりですが、人間の脳は限られた複雑さしか扱えません。ソフトウェアが思い通りに動くようするには、脳に収まり、人間が理解できるコードを書く必要があります。 本書は、拡張を続けても行き詰ることなくコードを書き、複雑さを回避するための実践的な方法を解説します。最初のコードを書き始めるところから機能を追加していくところまでを解説し、効率的で持続可能なペースを保ちながら、横断的な問題への対処やトラブルシューティング、最適化を行なう方法を説明します。自分のチェックリストからチームワーク、カプセル化から分解、API設計から単体テストまで、ソフトウエア開発の重要な課題に対する考え方やテクニックを紹介します。サンプルプロジェクトで使うコードは、Gitリポジトリの形で入手でき、試しながら学べます。 有効に機能するプロセスを選び、効果のない方法論から脱却する方法。チェックリストを使うこ
テクノロジー 関数・変数・機能に対する名付け方は“理解の試金石” まつもとゆきひろ氏が、プログラミングで名前が大事だと思う理由 | ログミーBusiness
日本人プログラマーで最も有名なRubyの生みの親まつもとゆきひろ氏:ご紹介に与りました、まつもとゆきひろです。裏番組もおもしろそうなんですけれども(笑)、こちらに来ていただいてありがとうございます。何人ぐらい来てくれているのかな? まぁいいや。 今日はですね、「プログラミングのことわざ〜Rubyの父が語る教訓と知恵〜」というタイトルでお話しします。 まつもとゆきひろです。こんな感じのアイコンで活動していますけれども、Rubyを作った人として知られています。インターネットではひらがなです。ちょっと差別化しようと思って、大学生の頃からインターネットで活動する時には、ひらがなで名乗ると決めています。 海外の人とやり取りする時は、あだ名を作ってニックネームで呼んでもらっています。海外の人ってわりとファーストネームで呼びたがるのですが、「ゆきひろ」とか呼ばれるとちょっとドキドキするので、Matzとい
『プログラミング文体練習 ―Pythonで学ぶ40のプログラミングスタイル』 Cristina Videira Lopes 著、菊池 彰 訳 2023年6月14日発売予定 316ページ(予定) ISBN978-4-8144-0022-5 定価3,300円(税込) レーモン・クノーの『文体練習』から着想を得て執筆された本書は、1つの課題を異なるプログラミングスタイルで実装し、さまざまなスタイルの特性やスタイルが生まれた歴史的経緯などを解説します。本家の『文体練習』は、「バスの中で起きた諍いと、その張本人を後で目撃した」という内容を、公的文書風、宣伝風、業界用語風など、99の異なる文体で表現したものですが、本書は、「単語の出現頻度をカウントして多いものから出力する」という課題を、40のスタイルで実装しています。リソース制約が大きかった時代の方法から、オブジェクト指向、純粋関数型、リフレクション
この記事について 私はWeb基盤を提供している企業でWebアプリケーションエンジニアをしています。 インフラや顧客基盤など複数のバックエンドAPIが動いており、それらを結合したアグリゲーション(BFF)の作成とフロントエンドの実装を担当することが多いです。 言語はTypeScriptとC#を選択する事が多く、フロントエンドではReact.jsとVue.jsを使用しています。これらをコンテキストとして私が「良いコード」を書くために日頃意識しているTipsを投稿していきます。 やらないこと インデントを揃える、命名基礎、アクセス修飾子などの基礎的な内容は割愛しています。 コードはTypeScriptで書いています。ですが特定の言語に特化した内容にはしていません。 プログミング全般に掛かかった内容であり、フロントエンドやバックエンドなど特定のレイヤーに特化した内容にはしていません。 良いコードと
はじめに 良い本です。コードを書く人であればだれでもが気づきと学びがあるでしょう。 特に、コードの規模が大きく長期間にわたってさまざまな関係者が読むことになるプログラムを書く人にはぜひ読んでほしい本です。 gihyo.jp この本から学べるのは、どちらかというと「やり方」よりも「考え方」です。 書き方の具体例というよりは、良いコードを書くための考え方を、著者の知見に基づいて丁寧かつ具体的に説明しています。 別の言い方をすると、とにかくコードの具体例で「やり方」を覚えたい、という人には合わないかもしれません。 コードの具体例もたくさん登場しますが、それは「考え方」を説明するための例であって、コードの書き方のお手本やサンプルを集めた本ではありません。 サンプルコードはKotlinです。内容は、どちらかといえばユーザーインタフェースよりという印象です。しかし、Kotlinを知らなくてもほぼ問題な
ブレンドモード(またはレイヤーの合成モード、描写モード)とは、デジタル画像編集およびコンピュータグラフィックス(CG)の分野において、2つのレイヤーが互いにどのように合成されるかを決定するための設定である。 ほとんどのアプリケーションのデフォルトのブレンドモードは、単に上のレイヤーで下のレイヤーを覆い隠すというものである。一方で、2つのレイヤーをブレンドするブレンドモードがたくさん用意されている。それぞれの「レイヤー」の画像を構成するピクセルの一つ一つが、RGB値(カラーチャンネル)やアルファ値(アルファチャンネル)などを表す数値を持っており、それに応じて適切なブレンド方式を使い分ける必要がある。 Adobe PhotoshopやGIMPなど多くのCGソフトでは、「基本的」なブレンドモードだけでも結構あり、ユーザーはレイヤーの不透明度を変更するなどして、レイヤーの合成方式をいい感じに調整で
はじめに ruby-jpのSlackで以下のような質問が投稿されていました。 クラスメソッドとインスタンスメソッドの具体的な違いがわかりません。 現状「クラスメソッドはクラスから実行でき全体に関する処理を書くときによく使うもの。インスタンスメソッドはインスタンスから実行でき、個別具体的な処理を書くときに使うもの。」という理解をしています。そして実装の際に「これはクラスメソッドとインスタンスメソッドどちらで書くべきなのか」悩むケースが多いです。 上記を踏まえて質問です。 クラスメソッドとインスタンスメソッドの具体的な違いを皆さんはどのように定義しているか どこからがクラスメソッドでどこからがインスタンスメソッドなのかの境目はどのあたりにあるか をお伺いしたいです! クラスメソッドとインスタンスメソッドの使い分けは僕がメンターをやっているフィヨルドブートキャンプでもよく見かける質問です。 そこ
はじめに:どうやってメソッドを定義したらいいの? 僕がメンターをやっているフィヨルドブートキャンプで、生徒さんから「自分でどうやってメソッドを定義すればいいのかわからない」という質問がありました。 質問をくれた生徒さんいわく、「メソッドを定義するのにあたって手が止まってしまうのは、メソッドを前提にプログラムを考えて書いていないからなのでしょうか」とのことです。 僕の場合、プログラムを作るときは「メソッド(または関数)を作ることを前提に」とは考えていません。ただ、わかりやすいプログラムを書くためには自然とメソッドの定義が必須となってくるので、あたかも息をするようにメソッドを定義している、という感じです。 とはいえ、それだと何の答えにもならないと思うので、「こんなふうに考えてみるのはいかが?」というたとえ話(?)を考えてみました。 メソッドを定義するときの考え方 メソッド定義は処理をグループ分
見積もりとは? Wikipediaによると見積もりとは、以下のようにあります。 見積(みつもり。見積り、見積もりとも書く)とは、金額・量・期間・行動を前もって概算すること。見積もること。あらましの計算をすること。また、その計算。目算。「所要時間を見積る」、「一日の来客者数をざっと見積もった」など、おおよその感覚で数字の見当をつける場合の口語体表現でも使われる。 Wikipedia このように見積もりとは、なにかを行う前に事前にその結果を予想しておくことを言います。 見積もりを使うケースは、ソフトウェア開発に限った話ではありませんが、製造業であるソフトウェア開発においては『見積もり』というタスクは様々なケースで登場します。 見積もりが苦手な人は多い ソフトウェア開発では、「この機能を開発するときにどのくらいで完成できますか?」といったケースが見積もりのシチュエーションとしては多いかと思います
Web Componentsは10年ほど前に提唱されたブラウザのコンポーネント技術の総称です。自分でタグを作ってHTMLを拡張していける技術なのですが、ブラウザの対応や仕様の確定などに時間がかかり、なかなか実用に至りませんでした。 私もずっと忘れていたのですが、React/Vueに疲れたなーと考えていたところ、ふと思い出し調べ直してみると、既に安定してProduction readyなのに情報が少なくすごくもったいなかったので、自分で調べつつ色々書き残すことにしてみました。 Web Componentsの誤解名前は聞いたことはあっても使ったことがある人はまだ少ないWeb Components。私も認識違いがありました。 UIコンポーネントを作る仕組みだから自分で作ることはないCSSをページをまたがって使い回すことがあるなら楽になります CSSで!important を書いてたらWebCom
となるのが原因です。parseInt というのは、文字列を解析して整数値(int)を返すグローバル関数であり、引数をまず文字列に変換する仕様となっております。その段階で 0.0000005 が "5e-7" という文字列に変換されてしまい、その文字列の先頭の 5 だけが数字として解析されてしまったため、結果として parseInt(0.0000005) === 5 となりました。 なぜ String(0.000005) === "0.000005" に、String(0.0000005) === "5e-7" になるのかについては、この記事の最後で余談として説明します。 整数化には Math.trunc を使おう このように、parseInt は文字列を引数にすることを前提にしているため、速度の面でも可読性の面でも「小数値を整数値に変換したい」という場合に使うのは望ましくありません。最も望
ぴくすふぁんく @pxfnc マジでスパゲティコード書くやつらは成果がすぐでるせいでプログラム分からん人たちからめちゃくちゃ評価されてるのほんま許せん その人がやめて保守やるタイミングで、保守に時間がかかった時に「ソースコードのせいにするダメなエンジニア」って烙印押されるのも許せん スパゲティに死を 2019-05-26 10:20:58 リンク Wikipedia スパゲティプログラム スパゲティプログラムまたはスパゲティコードとは、プログラムのソースコードがそれを制作したプログラマ以外にとって解読困難である事を表す俗語。名称の由来は、皿に盛られたスパゲッティのようにロジックが絡み合っていることから。 実務において、特にクライアントからの受注や業務委託に求められるコーディングは他者が解読可能な形態、すなわちコードの整序やリファクタリングされたプログラムコードを求められる。しかし、コード共
はじめに 最近よくクリーンアーキテクチャが話題になってて、関心が高まってる感じしますよね! ということでカブク社内でも書籍『クリーンアーキテクチャ』の輪読会が開催されました! この記事は null 個人の考察です。 クリーンアーキテクチャとは 書籍を読んでみた結果、次のブログ記事がすべてだと言っていいと思いました。 クリーンアーキテクチャ(The Clean Architecture翻訳) | blog.tai2.net https://blog.tai2.net/the_clean_architecture.html 上記ブログ記事に比べて書籍に含まれる文字数は膨大ですが、膨大なのは前提知識(プログラミングパラダイムとか設計原則とか)と歴史と補足(と著者のカタルシス)です。 以下の私の記述は基本的に上記ブログ記事に対する考察と取っていただいても差し支えありません(ただし引用文は書籍からの
Authorization: OAuth oauth_consumer_key="xvz1evFS4wEEPTGEFPHBog", oauth_nonce="6eb24361e7250e5112288fa4954dd8f634a7320c342c43019510c2cda8c8b3db", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1581159389", oauth_token="370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb", oauth_version="1.0", oauth_signature="8TACi1tsshSi9dfiLa8Vm8SasTs%3D" ※見やすくするために改行していますが、実際は 1 行で記述します。 oauth_consumer_key
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く