タグ

関連タグで絞り込む (150)

タグの絞り込みを解除

programmingに関するvanbraamのブックマーク (640)

  • 読みやすいコード(僕にとって) - Mitsuyuki.Shiiba

    最近気づいたことがある。それは、僕はみんなみたいに複雑なことが理解できない、ってこと。 話をしてても「ごめんなさい。いまのわかんなかった。もう一回教えて欲しい。」とかよくあるし。ドキュメントも、ちょっと複雑なことが書いてあると、全然頭に入ってこない。 色んなルールがドキュメントに書いてあって、それをちゃんと守りながら開発してる人たちとか見てると、みんなすごいなぁって思うのであった。 なんだろうなぁ。こう・・・色んな想像が始まってしまって、考えが落ち着かないんよね。 そんな僕なのだけど、ここ数年はありがたいことに色んなコードを読む機会がある。読みやすいコードもあれば、パズルみたいに複雑なものもあって。そんな中で、たぶん、僕にとって読みやすいコード、というのは普通の人にとってはとても読みやすいコードなのかなぁって思って。書いてみる。 JavaでWebのアプリを開発してる。基盤とかフレームワーク

    読みやすいコード(僕にとって) - Mitsuyuki.Shiiba
    vanbraam
    vanbraam 2017/11/03
    ’call graphがわかり易い事’が一番.これが出てこない人は,デバッグやトラブル・シューティングをせず,プログミングの綺麗な部分だけ扱ってる人だと思う.エラーの原因が呼び出し階層の上の方にある事などザラなんだから
  • プログラマーのススメ

    人は全員プログラミングを勉強した方が良い。 プログラミングは簡単だし、IT企業なら開業資金も少額で済む。(最初はパソコン、回線、プリンターがあれば十分) 自己資金で数カ月で軌道に載せれるようなネタしかできない。 IT起業の道のりを教えてあげるよ。 下請け:他人が作って欲しいものを作って納品する=資金を増やす自転車操業の段階。 自社開発:自分で作りたいものを作って売る=自転車操業からストックビジネスに移行する。レベニューシェア=下請けと自社開発の中間のビジネスモデル。 増田に投稿できるってことは、パソコンぐらい持ってるんだろ? 屋や図書館に行って、自分に合った分かりやすいプログラミングのを探してみよう。 仕事を取ってくる方法は、ソニックガーデンのやり方を参考にしたら良い。 https://www.sonicgarden.jp/ プログラミング入門最初に1冊だけ推薦するなら「プログラミ

    プログラマーのススメ
    vanbraam
    vanbraam 2017/10/26
    "問合型"で読むのをやめた.これを"パラダイム"と呼ぶ様な人物がまともに計算機科学を学んでいるとは思えない;なんつーか,本質を学ぼうという気が1ミリも感じられない文章だ
  • 人間らしくコードレビューするには(パート1) | Yakst

    自動化することによりあなたはレビュアーとしてより価値のある貢献ができるようになります。importsの順序やソースコードのファイル名の命名規約などの問題を無視できるならば、機能上の誤りや可読性の問題といった、より関心のある問題にフォーカスすることができます。 オーサーもまた自動化の恩恵を受けます。ケアレスミスを見つけるのに1時間浪費することなく、即座に見つけられます。即座にフィードバックを受けられることで、関係のあることがオーサーの頭に残り、これにより学習が容易となり、修正コストが低くなります。それに加え、彼らが初歩的な誤りについて指摘を受ける必要がある場合、あなたから指摘を受けるよりコンピューターから指摘を受けたほうが彼らの自尊心の観点からはるかに気分がよいわけです。 これらの自動チェックはコードレビューのワークフローの中に入れましょう(例えば、Gitのコミット前のフックやGithub

    vanbraam
    vanbraam 2017/10/26
    "1回のレビューのラウンドで20から50のコメントがつくと危険ゾーン";質問形式にするのはよく使う;サンプル・コードの提示はやりすぎるとreviewerがコードを書く側になってしまうので,余りしない様気を付けてる
  • 『なぜ私達は Python から Go に移行したのか - Frasco』へのコメント

    ブックマークしました ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください Twitterで共有

    『なぜ私達は Python から Go に移行したのか - Frasco』へのコメント
    vanbraam
    vanbraam 2017/10/26
    Javaが遅いと言っている/思っている人へ:Javaはプログラムの起動に時間がかかるだけで処理性能は高い.例えばhttp://benchmarksgame.alioth.debian.org/u64q/java.htmlから各テスト(k-nucleotide,etc)のリンクを辿ればJavaの処理性能の高さがわかる
  • なぜ私達は Python から Go に移行したのか - Frasco

    新しい言語に移行するのは常に大きな決断です。その言語をよく知る人がチームメンバーに1人しかいない時などは特にそうです。今年の初め、我々は Stream の主要言語を Python から Go に切り替えました。この記事では、なぜ私達が Python から Go に移行しようと決断したのか、その理由を説明します。 Go を使う理由 理由1 - パフォーマンス Go は速いです! Go は極端に速い。そのパフォーマンスは Java もしくは C++ に匹敵します。私達のユースケースでは、GoPython より30倍速いです。GoJava を比較したベンチマークはこちらです。 理由2 - 言語パフォーマンスの問題 多くのアプリケーションにとって、プログラミング言語は、単にアプリとデータベースを繋ぐものにすぎません。言語そのもののパフォーマンスは通常あまり重要ではありません。 しかしな

    なぜ私達は Python から Go に移行したのか - Frasco
    vanbraam
    vanbraam 2017/10/26
    goroutineの同時並列(not並行)実行数はコア数が上限だった様な;race detector;frameworkがあるのになぜ"欠如"と書く?;パッケージ管理の最新流行はDepなのか;ranking実装比較は,Pythonが最適化工数を含むのにGoが含まないのはunfairでは?
  • なぜ多くの開発者が今なお Swift よりも Objective-C を好むのか - Frasco

    iOS SDK がアナウンスされてから数年間、アプリ開発ゴールドラッシュの恩恵を得ようと、開発者たちは Objective-C の世界に群がっていました。しかしその時代は去りました。Swift が我々の前に現れて3年以上、それは古い同種の言語を主役の座から押しやりました。 Objective-C - かつてはアプリ開発の世界で人気急上昇のスター的存在でしたが - は、Apple の開発環境の中では2級の扱いになっていきました。そうです、それは時おり WWDC にて1枚か2枚のスライドに引っ張り出されることはあるかもしれませんが、カンファレンスの大部分は Swift に関してです。AppleSwift教育を推進しており、主要な言語の機能はまず Swift に対応するようになっています。 しかし、まだ Objective-C を使ってるなら、あなたは一人ではありません。たくさんの開発

    なぜ多くの開発者が今なお Swift よりも Objective-C を好むのか - Frasco
    vanbraam
    vanbraam 2017/10/25
    多くの人がSwiftを使わない理由として挙げているのは,"コンパイル時間の長さ(Objective-C比)","ABIの安定性の問題",そして勿論"Objective-C資産の大きさ(含む自身のスキル)"辺りか
  • Kotlinのスキルを持たないAndroid開発者は恐竜のようになるリスクに直面。モバイルアプリプラットフォームのRealmが予測

    Kotlinのスキルを持たないAndroid開発者は恐竜のようになるリスクに直面。モバイルアプリプラットフォームのRealmが予測 「明確に、(Androidにおける)Javaは死にかかっている」。 モバイルアプリケーションのためのプラットフォームを提供するRealmは、モバイル開発者を対象とした調査結果をもとに、2018年12月にはAndroidにおけるプログラミング言語としてKotlinJavaのシェアを超えるという内容を含むレポート「Realm Report」を発表しました。 Kotlinのスキルを持たないAndoproidデベロッパーは恐竜になる レポートの中では、KotlinAndroidの正式な開発言語になると発表されたGoogle I/Oのあとから、Kotlinのシェアは急速に伸びていると指摘。 Google I/Oの時点で約8%程度だったシェアは、その後4わずかカ月で1

    Kotlinのスキルを持たないAndroid開発者は恐竜のようになるリスクに直面。モバイルアプリプラットフォームのRealmが予測
    vanbraam
    vanbraam 2017/10/23
    これが正しい予測なら,KotlinがAndroid外にも広がってもおかしくないと思うのだが,そうならない理由は何なのだろう?
  • 属人化を避ける - Qiita

    属人化の理由 個人の問題 手抜きやバグを隠す たとえば、仕様書外の動作を実装し、それをプロジェクトで利用する 解雇されないための保険的行動 チームの問題 マニュアルを作る文化の欠如 他人のタスクに対する無関心 他人の監査なしにプロジェクトを更新可能 どうやって属人化を避けるのか 間違った対策 ○○さん以外にもマニュアルなしで操作できる人間を育成 育成した人が全滅すればやっぱり同じ状況 全員がすべてのプロジェクトに精通するとかはムリ 正しい対策 モジュールごとに仕様書を用意 間違って使うことが難しい仕様とする 即ち、仕様書を読まなくてもある程度正確に使える お互いにコードレビューさせる 具体的にはどうすれば良い? テスト・仕様書・利用例 テストは仕様書のベースとなる 仕様書を見れば、深い動作がわかるようになる 仕様書を読まなくても、利用例を見れば使える 全員がテストできる環境を作る 前提条件

    属人化を避ける - Qiita
    vanbraam
    vanbraam 2017/10/23
    "正しい対策"にコードレビューの進化系としてpair programmingを入れてもいいのでは
  • 何でもかんでも揃えようとしないでほしい

    プログラマなんだけど、なんでも揃えようとしてる人がうざい よくあるのが、JSON とかオブジェクト系の記述するところで、 「:」とか「=>」みたいなのの位置 揃えられると一見すると見やすいが、金額みたいに揃ったみやすさが必要ないところでされると面倒 10行並んでたら1つ変えたのが原因で10行とも変えないといけなかったりする 面倒だけどツール使えば揃えること自体は楽にできるからこれはまぁいい だが、バージョン管理ソフトでの変更行数が無駄に増えるのでパット見たときに結構大きな変更してるように見えたりするからちょっとイヤ さらに grep かけようにも空白数が不定だから正規表現にしないといけない 正規表現書くの面倒だしそもそも遅い 大規模プロジェクトだと待ち時間が大きく変わってくる んだけど、まあここまでは別にいい 他でも十分ある宗派の違いだし、まだ理解できる この揃えるときに aaa : {

    何でもかんでも揃えようとしないでほしい
    vanbraam
    vanbraam 2017/10/23
    Goだと最初のはgofmtで強制される.自分も形式だけの差分が出るのは好きじゃないが,ここは諦めてる;後半(1)-(3)はあり得ない.自分なら上だろうが何だろうがレビューで指摘する
  • 私の異常なプログラミング教育

    BPStudy#122 〜いかにプログラミングを学ぶか?プログラミング教育を考えるの発表資料です。 https://bpstudy.connpass.com/event/66418/

    私の異常なプログラミング教育
    vanbraam
    vanbraam 2017/10/22
    "毎年やってる研修"のゴールがわからないので評価は保留.ゴール重要;"現場で使ってる"以外の言語をあえて選ぶのはありかも.学習を暗記ではなく理解中心にできそうなので(Pythonで理解しないと仕事=Javaで応用できない)
  • ログイン - はてな

    パスワードを忘れた方はパスワードの再設定を行ってください。 初めての方ははてなID登録 (無料) してください。 うまくログインできない方はお問い合わせをご覧いただき、Cookieの設定をご確認ください。

    ログイン - はてな
    vanbraam
    vanbraam 2017/10/12
    "差分だけでなくコミット単位でレビューする人"<自分もそう;"コードを読んだだけでは理解できない/しにくい事"については目的を明記して(≒whyを書いて)ほしい;テストがない場合は確認手順必須だがまずテストを書くべき
  • ソ連の宇宙開発で使われていたプログラミング言語は?

    stackexchange.com上のソビエトの宇宙開発でどんなプログラミング言語が使われているのか?という話題で興味深い議論が展開されています。 投稿者は「ソビエトの宇宙開発プログラムの宇宙船ブランでProLogが使われていたのを知りましたが、それ以前でどのようなプログラミング言語が使われていたのか誰か知りませんか?」という質問を投稿します。 それに対して「ソース出せ」というツッコミがつくと、投稿者は公開されたCIAの調査資料にProLogが使われていたと記載があったと返信します。 その後の回答で最も支持されているのはロシア語の書籍「 First computers for space applications (Герман Носкин, Первые БЦВМ космического применения)」を持っている方からの回答です。著者自身が宇宙開発に参加していたという事も

    ソ連の宇宙開発で使われていたプログラミング言語は?
    vanbraam
    vanbraam 2017/10/12
    "水城徹"氏のコメントも含めて興味深い;旧ソ連のプログラミング言語は,ガラパゴスの生物の様な進化を遂げたのだろうか?西側の情報は(党が許せば)かなり入手可能だろうから,外界から全く影響を受けない訳でもなさそう
  • 同僚のコードレビューでこんなにクラスの設計が良くなったという話 - Qiita

    弊社では、案件とは関係のないプロジェクトでも業務時間中にみんなにコードレビューを依頼できる時間が確保されています(参加は任意)。案件のコードレビューを依頼したり、ちょっとした個人の制作物を見てらったりと使い方は色々です。 先日、TypeScriptの練習にQiitaのAPIを叩いていて記事を表示するブログウィジェットを作成しました。このウィジェットのレビューを依頼したところ、クラスの設計について具体的な指摘と、それに対する改善を経験できたのでこの記事に記載します。 今回作ったQiitaWidgetの要件 Qiitaの公式APIV2から記事とユーザー情報を取得し、HTMLテンプレートに表示する 投稿の合計いいね数を算出するために、あるユーザーの投稿を全件取得する (このために複数回リクエストの送信とレスポンスデータの結合を行う) パラメータによってユーザー、いいね数によるソート、表示件数、ラ

    同僚のコードレビューでこんなにクラスの設計が良くなったという話 - Qiita
    vanbraam
    vanbraam 2017/10/12
    確かにレビュー前後でクラス構造/関係の理解のし易さが大きく改善している様に思える.但し改善後の状態は改善前があってこそ.最初に「叩かれる台」を作る行為にも価値がある
  • 差分検出アルゴリズム三種盛り - Object.create(null)

    こんばんは. 気がつけばもうずいぶんと涼しくなってきました. 勢い余って凍ってしまったりせぬよう, くれぐれも普段の言動にはお気をつけください. はじめに さて, 我々人類にはどうしても二つの文字列 (あるいは行ごとに区切られたテキスト) 間の差分を求めなければいけない瞬間が発生します. 先人たちはそういった時のために diff のようなツールを開発し, それを利用することで文明はめざましい発展を遂げてきました. しかしながら, 使用するアルゴリズムを比較検討したい場合, 「差分」の定義を変えるなどして既存のアルゴリズムに変更を加えたい場合, diff のない異世界に飛ばされて自分で実装しなければいけない時などにおいては, 差分検出アルゴリズムについての理解が必要不可欠です. というわけで, この記事では文字列間の差分検出とは何かということと, 差分を求める三種類のアルゴリズムの紹介・解説

    差分検出アルゴリズム三種盛り - Object.create(null)
    vanbraam
    vanbraam 2017/10/10
    O(ND)法の途中,"A–B 間の編集距離が D であったとき"は,"A–B 間の_最小_編集距離が D であったとき"という意味?;行単位のdiffの時はもう一工夫要りそう
  • 「それ、もっとスマートに書けるよ」がもっとスマートに書けるよ - Qiita

    const ua = navigator.userAgent; if (~ua.indexOf('iPhone') || ~ua.indexOf('iPod') || ~ua.indexOf('iPad')) { return 'ios'; } else { return 'other'; } const ua = navigator.userAgent; if (ua.includes('iPhone') || ua.includes('iPod') || ua.includes('iPad')) { return 'ios'; } else { return 'other'; } ※「それ、もっとスマートに書けるよ」を書いた人はnavigator.userAgentを配列だと勘違いしていますが、navigator.userAgentは文字列です。(だからua.indexOf()はArr

    「それ、もっとスマートに書けるよ」がもっとスマートに書けるよ - Qiita
    vanbraam
    vanbraam 2017/10/08
    b:id:entry:345890162みたいなのが書かれると,まあこうなるよね;Idiomをコレクションするのではなく,コードの安全性/計算量オーダー/可読性等を(だいたいこの順で)常に意識して書く様にする方がいい
  • Latest topics > ツリー型タブのWebExtensionsへの移行のおはなし - outsider reflex

    Latest topics > ツリー型タブのWebExtensionsへの移行のおはなし 宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行まんがでわかるLinux シス管系女子の試し読みが可能! « WebExtensions Migration Story of Tree Style Tab Main マルチプルタブハンドラもWebExtensionsに移行しました » ツリー型タブのWebExtensionsへの移行のおはなし - Oct 03, 2017 Here is the English version of this article. このエントリはQiitaとのクロスポストです。 2017年の8月下旬に思い立って、ツリー型タブのWebExtensions版を作り始め、去る9月26日にバージ

    vanbraam
    vanbraam 2017/10/04
    pragmaticな話で面白かった(ご本人にとっては"面白い"で済む話ではないのだろうけど);OSSで提案の諾否の基準が不明確なのが辛いのはよくわかる
  • Curl (プログラミング言語) - Wikipedia

    Curl は、米国マサチューセッツ工科大学 (MIT) で開発された対話的なウェブコンテンツ用のプログラミング言語である。CurlHTMLに影響を受け[1]HTMLのようなテキストマークアップと、JavaScript のようなスクリプティング、Java のような重量機能を単一のフレームワークに統合している。 Curl はマークアップ言語の一面があり、プレーンテキストはテキストのまま記述する。それと同時に多重継承のような機能を持つオブジェクト指向プログラミング言語でもある。Curl のアプリケーションでは、従来のウェブ開発においてHTMLCSSJavaScript の分離がもたらす、コンテンツ・スタイル・振る舞いの分離が強要されることはない。ただし、そのようなスタイルのプログラミングも可能である。 Curl は書式付テキストの表示用途にHTMLの代替として使うこともできるが、その能力

    Curl (プログラミング言語) - Wikipedia
    vanbraam
    vanbraam 2017/10/03
    b:id:entry:345641416見て思い出したのでブクマ;b:id:entry:345641416の人は何か素晴らしい事を思いついたかの様に書いてるが,そんな営みはずっと繰り返されて,ほぼ失敗している.一度普及した技術の慣性の大きさを侮ってはいけない
  • So You Wanna Go Fast?

    This document contains the transcript from a presentation titled "So You Wanna Go Fast?" by Tyler Treat. Some of the key topics discussed include measuring performance using tools like pprof, how different language features in Go like channels, interfaces, and memory management can impact performance, and techniques for writing concurrent and multi-core friendly code in Go like using read-write mu

    So You Wanna Go Fast?
    vanbraam
    vanbraam 2017/10/02
    ここまで性能追求しなければならないプロダクトは殆どない.NATSが数少ないそういう製品なのは理解してる;性能測定のtoolchainについては非常に参考になった
  • Goの実装パターン ~ Webサーバ編 ~

    From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE

    Goの実装パターン ~ Webサーバ編 ~
    vanbraam
    vanbraam 2017/09/30
    頭の整理になった
  • Javaのジェネリクスは「まがい物」ではない - kmizuの日記

    先日、自分が書いた kmizu.hatenablog.com に対する反応として、「Javaのようなまがい物のジェネリクスと比較するのは適切でない」「Javaのジェネリクスと比較するのは適切でない」(おそらくC#や(C++等(2017/09/24追記))の言語と比較して)といった コメントをいくつか見かけました(はてなブックマークコメントやツイッターなどで)。しかし、ここでは、そのような言説こそが適切でない、ということを言いたいです。なお、methane氏との 対話については既に終わったものなので、それとは関係ありません。 そもそも、Javaジェネリクスは、静的型付き関数型言語で既に一般的であったパラメータ多相をJavaに追加する目的で導入されました(C++テンプレートのようなものをJavaに追加するためだと思っている人がいるかもしれませんが、それは実態にあっていません)。実際、Java

    Javaのジェネリクスは「まがい物」ではない - kmizuの日記
    vanbraam
    vanbraam 2017/09/25
    全く文脈の異なる記事だが,b:id:entry:286074513の時も思ったのは,何かを"まがい物"という人物は"本物"の定義を明示すべき,という事.定義が違ってたら議論以前の問題だし,オレオレ定義に基づく言葉は感想でしかない