タグ

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

タグの絞り込みを解除

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

  • COBOLってこんな言語

    日経xTECHの元記事を読んでもCOBOLの特徴があんまり伝わってこない感じだし、かといってそれをディスってもしょうがないので、書いてみた。 https://anond.hatelabo.jp/20190205192741 COBOL質的にはDSLなんだけど、一見汎用プログラミング言語に見えてしまってRubyPythonなんかと比較するのが誤解のもとではあると思う。今の人でも知ってそうなCOBOLに似ている言語はたぶんSQLで、データを処理するための専用言語。ただ、SQLは頑張ればすごく複雑なこともできるパワフルな言語で、だからこそ現代でも生き延びているわけだけど、COBOLはわりとシンプルなデータ処理を想定している感じ。 SQLだけでアプリケーションを作れないのは触ったことある人なら誰でもわかると思う。普通はJavaRubyで全体の流れを記述してデータベース入出力をSQLで書く。

    COBOLってこんな言語
    vanbraam
    vanbraam 2019/02/07
    あと地味にCOBOLは数値を十進で扱うのが普通なので,浮動小数点数由来の誤差問題を考える必要がない点も,お金を扱うシステムで重宝された理由だと思ってる
  • 【衝撃】転職成功率98%のプログラミングスクールの卒業生にインタビューしてみた結果がやばすぎた件 | Dividable

    こんなツイートをしてみました。 プログラミングスクールに行って、実際エンジニアにまで転職成功した人ってどれくらいいるんだろう。いいプログラミングスクールが可視化されるようにしたいので、ぜひインタビューさせてほしいんだけどフォロワーさんの中でいらっしゃったらDMいただけると嬉しいです。 — Dai (@never_be_a_pm) January 17, 2019 プログラミングスクールに行って、実際エンジニアにまで転職成功した人ってどれくらいいるんだろう。いいプログラミングスクールが可視化されるようにしたいので、ぜひインタビューさせてほしいんだけどフォロワーさんの中でいらっしゃったらDMいただけると嬉しいです。 そこでDMいただいた方から、転職成功率98%のプログラミングスクールを卒業された後の話を聞いてみたので、インタビューをまとめてみたいと思います。なお、特定のプログラミングスクールを

    vanbraam
    vanbraam 2019/01/20
    "やばすぎ"ってほどでもない様な;ただこのブログも別記事にDive Into Codeの宣伝があるから眉唾で読む必要はありそう;今"転職成功率98%"で検索すると,この記事のURLが先頭に来る.その意味では記事消えたのは残念
  • Haskellで型クラス制約の和を表現する - Qiita

    問題 Haskellでコードを書いている時、「複数の型クラス制約のうち一つを満たすような型」を扱うような関数を書きたい場合があります。擬似コードで書けば、 class Foo a where foo :: a -> String class Bar a where bar :: a -> Int instance Foo Integer where foo = show instance Bar Int where bar = id -- 型クラス制約の「和」を取る関数を定義したい someFunc :: (Foo a OR Bar a) => a -> IO () someFunc x = let y = foo x OR ("Bar:" ++ show (bar x)) in putStrLn y main :: IO () main = do someFunc (123 :: Int

    Haskellで型クラス制約の和を表現する - Qiita
    vanbraam
    vanbraam 2019/01/20
    Haskell読めないので詳細は理解してないけど,"制約の和を表現する"というのでPrologを連想した
  • 開発者が知っておくべきSOLIDの原則 | POSTD

    (編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) オブジェクト指向プログラミングが、ソフトウェア開発に新しい設計を持ち込みました。 その結果、開発者は単一の目的を処理するために、全体のアプリケーションに関係なく、1つのクラスの中で、同じ目的や機能を持つデータを結び付けることができるようになりました。 しかし、このオブジェクト指向プログラミングで、分かりにくいプログラムやメンテナンスができないプログラムを防ぐことはできません。 そこで、5つのガイドラインがRobert C. Martinによって作り出されました。これら5つのガイドラインすなわち原則により、開発者にとって読みやすく、メンテナンスが可能なプログラムを作成しやすくなりました。 5つの原則は、S.O.L.I.Dの原則と呼ばれています(頭字語はMichael Feathereによって名付けられま

    開発者が知っておくべきSOLIDの原則 | POSTD
    vanbraam
    vanbraam 2019/01/19
    サンプル・コードに違和感を覚えてすんなり読めないのは,自分の理解力が足りないからだろうか?
  • Callback を撲滅せよ

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。言語サポート(Node.js)チームの伊藤(@koh110)です。 Node.js v10 も10月にLTSとなり async/await によるフロー制御は当たり前のように利用されるようになってきました。JavaScriptの非同期処理は async/await から覚える人も今後増えていくでしょう。今回はそんな非同期処理について、社内での事例を交えて記事を書いていこうと思います。 index Promise 化がなぜ重要なのか ユーザーに promisify をさせる落とし穴 Road to Promise まとめ Promise 化がなぜ重要なのか ちょうど3年前のアドベントカレンダーで、今後はいろいろなモジュー

    Callback を撲滅せよ
  • 初心者をプログラマーにできるかどうか - そーだいなるらくがき帳

    blog.3qe.us これを読んだ感想文を書く。 結論、大量生産は無理やろとは思う。 少なくとも、「プロ」としてお金をもらって高品質なソフトウェアを0から書けるようになるにはセンスが必要だ。 そもそもそのレベルには私もなっていない。 ただ今あるモノになんとなく機能を追加するレベルに引き上げる術はもっとあると思う。 経験則でなんとなくその例をあげる。 ペアプロ OJTに近いとも言えるし、一番わかりやすい。 ここでペアプロはハローワールドまでの環境構築や実装までを各要素を説明しながらやることを指す。 まずはメンター側が目の前で順番にやってみる。 で次にメンティに同じことをさせる。 そうすると絶対詰まる。 Error: variable 'a' is undefined, line 24 こういうエラーが出るとまず英語を目の前で読む。 で理由を順番に説明して24行目を一緒に読む。 根気よく教え

    初心者をプログラマーにできるかどうか - そーだいなるらくがき帳
    vanbraam
    vanbraam 2019/01/05
    この問題は最終的には「勉強の仕方を身に付けてもらう」事に行き着くと思う.そしてどんな問題にでも応用できる勉強の仕方は,(howではなく)whyを追求していく事だと自分は思ってる
  • 底辺IT企業は『書けない』プログラマとどう向き合ってきたか - megamouthの葬列

    新年から夢のない話で申し訳ないのだが、表題のとおりのテーマである。 note.mu という記事があって、むやみに長いので飛ばし飛ばし読んだ。 大意としては、世の中には「書けない」プログラマというのがいて(元エントリでは学生さんのようである。さもありなん)そういう人はどうやったって書けるようにならないんだから、諦めろ、という話のようである。 で、じっと手を見て、下請け底辺のIT企業にいる私たちは、このような人々をどうしてきたろうか、と考えると、「放ったらかし」にしたなあ、と思うのである。 最初のほうは優しく教えていたと思う。話したりハンズオンしている時に、あっこの子、変数のことわかってないな、と感じたら、ホワイトボードを持ち出してきて、例の"x"と書いた箱の絵に矢印を引いて、値が入っている図を書いて、「わかった?」「あ、はい」みたいなやり取りをして終わり、という程度の「教育」である。 だが、

    底辺IT企業は『書けない』プログラマとどう向き合ってきたか - megamouthの葬列
    vanbraam
    vanbraam 2019/01/04
    これ関連の一連の記事を読んで思ったのは,2つの問題("教育方法"と,"教育してもダメな人をどうすべきか")があるという事.この記事は主に前者;SI業界の使い捨ての背景には,日本に根深く残る"由らしむべし"精神がありそう
  • バッチ処理の一部で 30 分以上かかっていた処理を 14 秒で終わるようにした話 - @watson1978 の日記

    Ubiregi Advent Calendar 2018 の 18 日目です。 ユビレジではたくさんのお客様の大量の POS データをお預かりしており、様々なバッチ処理も実行されています。今回は特定のケースでバッチ処理の一部が 30 分以上かかっていた処理を 14 秒で終わるようにした話について書きたいと思います。前回の Ruby 2.5 の SEGV と闘った話 - @watson1978 の日記 に引き続き DTrace を使った話になります。 はじめに ユビレジでは CSV ファイルでお客様が特定のデータをダウンロードしたりアップロードできる機能があります。CSV ファイルにエクスポートしたり、CSV ファイルから DB に取り込む処理を Worker を起動してバッチ処理しています。 大量のデータを保有しているアカウントと同量のデータを用意して手元の環境で試したところ時間がかかるこ

    バッチ処理の一部で 30 分以上かかっていた処理を 14 秒で終わるようにした話 - @watson1978 の日記
    vanbraam
    vanbraam 2018/12/18
    dtraceとかstraceとかちゃんと使えると便利だよなぁ.使い始めるまでの(自分の)敷居が高いのが辛い
  • JaSST' Tokai 18 - Agileとテスト自動化導入の勘所

    イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~

    JaSST' Tokai 18 - Agileとテスト自動化導入の勘所
    vanbraam
    vanbraam 2018/12/18
    "「本当に100%自動化されてるのか」と繰り返される質問に自動化しない言い訳を探しているように感じた”<似たような質問を繰り返すのは確かにヤバい
  • Structured concurrencyってなんなの - visible true

    Structured concurrency – Roman Elizarov – Mediumでは、Kotlin coroutine 0.26.0でCoroutineScopeを導入した経緯などが書かれているんですが、タイトルのStructured concurrencyってのが結局なんなのか文中にはあんまり出てこないんですよね。 んで、CoroutineScopeの動作の理解に精一杯で、coroutineScope関数がなんなのか、どういう時に使うべきなのかよくわからないし、ましてやsupervisorScope関数なんて言われた日には意味が不明なわけです。 とりあえずlaunch関数内でasync関数呼び出したら駄目なんだな〜ふ〜んなんで? Notes on structured concurrency, or: Go statement considered harmfulを頑張

    Structured concurrencyってなんなの - visible true
  • マルチカーソルを使わないVSCodeはただのVSCodeだ!〜解説編〜 - memo.md

    先日投稿した以下のエントリで、「使い方がわからない」という意見を多く頂いた。 mugi1.hateblo.jp マルチカーソル自体の操作方法は調べれば出てくるし、事例だけ紹介しとけばええやろ、と思っていたのだが、いきなり応用のサンプルを貼りすぎてわけがわからなかったらしい。申し訳ない。 せっかくなので、基礎から含め、どういったキー入力で上記のような操作を実現しているのかを紹介したいと思う。 🔥実践!マルチカーソル / 入門編 なおmac環境です。Windowsやその他環境の方は気合で調べてください。 また、言い訳臭くて申し訳ないが、私は普段はSublime Text Keymap and Settings Importerを使っており、SublimeTextっぽいキーバインドに変えて編集している。 一旦無効にしたうえでVSCodeデフォルトの状態で一通り調べて書いたつもりだが、もし違って

    マルチカーソルを使わないVSCodeはただのVSCodeだ!〜解説編〜 - memo.md
    vanbraam
    vanbraam 2018/12/14
    昔Vimでこれをやってるのを見た事があるが,ほぼ置換で済むので自分はいいやと思った記憶
  • Swiftのエラーハンドリングはなぜ最先端なのか - Qiita

    Swiftのエラーハンドリングは他のメジャーなプログラミング言語のどれとも異なる新しい仕様を持っています。特に、検査例外を持っているのですが、これはJavaで採用された以降はほとんどの言語で採用されていないため、現代では否定されている過去の間違いだったと広く認識されていると思います。そのため、Swiftユーザーで無い人は、検査例外という言葉をみた瞬間に興味を失ってしまうため、その詳細がなかなか世の中に伝わっていないと感じています。一方、私はこんなSwiftのエラーハンドリングをとても気に入っていて、様々な言語の進化の歴史を踏まえた産まれた最も優れた最先端の仕様だと思っています。この記事ではその考えを説明します。 Javaのエラーハンドリング Javaは検査例外を持っています。これにより、あるメソッドがエラーを送出するかどうかを関数のシグネチャとして静的に表明できます。 // 検査例外の例

    Swiftのエラーハンドリングはなぜ最先端なのか - Qiita
    vanbraam
    vanbraam 2018/11/27
    近年ずっと否定されていた検査例外のメリットについて説いた良い文章;"検査例外"を脊髄反射で否定してきた人々からすると癪に触る文章なんだろうな;例外の型はあった方が(pattern matching的な)例外処理は書きやすいと思う
  • コードレビューが好きになるプログラミングの原則 - Speaker Deck

    Web Developers Meetup Gotanda ~ MC Open Lab. #6 ~で利用した資料です。 https://memberscareer.connpass.com/event/106254/

    コードレビューが好きになるプログラミングの原則 - Speaker Deck
    vanbraam
    vanbraam 2018/11/27
    OCP:拡張に対してopenで,修正に対してclosed;KISS:Keep It Simple, Stupidがオリジナル;冪等性を求める理由は"操作の順序を意識しなくて良い"の方が適切では?;そもそも理由を示さないレビューはダメだと思う
  • 500+のサーバーで動く LINE Ads PlatformをささえるSpring

    Java クライント実装におけるAPIスタイル頂上決戦! 野良REST vs GraphQL vs OData vs OpenAPI (Swagger)

    500+のサーバーで動く LINE Ads PlatformをささえるSpring
    vanbraam
    vanbraam 2018/11/02
    "real time bidding"という言葉に騙されたけど,広告主は事前に条件付きbidを積んでいて,SSPからrequestが来たら条件に適合する最高値のbidを選択する,という理解で合ってるのかな?人間が50msでbidできるわけはないし
  • ググるのをやめるとプログラムの生産性が上がるかもしれない - メソッド屋のブログ

    今日はプログラミングの生産性に対して気づきがあったのでシェアしてみたい。 なぜ米国の人は生産性が高いのだろう プログラミングの生産性に関しては以前から興味がありいくつかのポストで考えたことをシェアしてきた。私は職業柄、いろんな国でいろんな人々とプログラミングを一緒にする機会が多い。その時に頻繁に感じるのは、平均的に言うと、アメリカの人プログラマが生産性が高い確率が高くて、しかもコードもきれいだという傾向にある。アメリカでお客さんと一緒にコードを書くと、お客さん自体が物凄く良く知っているし、実行力もある。アメリカの次と言うことでいうと、英語がネイティブの国もそれに近く、フランスなどの言語が近いところが続く感じなので、英語が物凄く影響すると思っていたし、実際すると思う。そのあたりの話はこちらのポストに書いてみた。 simplearchitect.hatenablog.com 定義での理解と、例

    ググるのをやめるとプログラムの生産性が上がるかもしれない - メソッド屋のブログ
    vanbraam
    vanbraam 2018/09/18
    ほぼ完全同意.自分は本質/原理vs表層と呼んでいる.前者は短期的には時間がかかるが,2回目以降の効率が桁違いだし応用も可能になる;表題は煽りだが,結局「解答ではなくその意味が重要」に尽きる
  • WordPressつらいニャン問題 - 2億か8億

    まずこれ quipper.hatenablog.com これを見たわたし pic.twitter.com/X47cK5qxTE— サンリズム・オーケストラ (@ueshita___) 2018年9月10日 「受託にいたこともあってWPでCMS作るような渋い話→WPやってたみたいな渋い人に来られても困る」、Quipperには転職することができないことがわかった— サンリズム・オーケストラ (@ueshita___) 2018年9月10日 これ出して平気なの、ブランディングというかんじがする Quipperすごい pic.twitter.com/6jvcqLFIxy— サンリズム・オーケストラ (@ueshita___) 2018年9月10日 WPまじで今すぐ捨てないとquipperに転職できないぞ!みんな捨てろ!破壊しろ!— サンリズム・オーケストラ (@ueshita___) 2018年9

    WordPressつらいニャン問題 - 2億か8億
    vanbraam
    vanbraam 2018/09/13
    WordPressはブログ記事を書くユーザーとして使ったことしかないが,そんなに辛いのか.この話と"世のサイトのx割はWP"という話と両方読むと,WPがなぜそんなにウケているのかを考える事が重要かもしれない
  • 本物のプログラマはPascalを使わない

    つい3年ほど前まで、ネット上で伝説の投稿「物のプログラマはPascalを使わない」を読むことが出来たのだが、今はマニアックに日語訳を探さないと読めなくなってしまった(原文は今でもネット上で参照可能)。 私の記憶が確かならば、日語訳が月刊『bit』というコンピュータ雑誌に85年頃?に発表されたと思う。当時の私はまだ少年で、プログラミングの師匠(ソフトハウスの正社員)から「読んでみろ」と読ませてもらった記憶があるが、当然半分も理解出来なかった。 そんな私もSEとしては老人と言われるような中年になり、昔を知らない若いエンジニアや若いエンジニア志望の人が非常に多くなった。温故知新と言うが、当時を知る人や、若い人にも読んでもらえれば幸いだ。 はじめにMarch 24, 1983 Real Programmers Don’t Use PASCAL 物のプログラマはPASCALを使わない Ed

    本物のプログラマはPascalを使わない
    vanbraam
    vanbraam 2018/09/10
    半分ネタ,半分マジだと思うが,改めて読むとプログラミング言語は(FORTRANですら)計算機ではなく人間の為に進化して来たと感じる;最後の段落,FORTRANはHPC応用に一日の長がありvector演算処理が容易という話を聞いた事がある
  • 自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報

    UNIX 開発者の一人である Ken Thompson が初期の UNIX にバックドアを仕掛けていたと言われている通称 Thompson hack を自作Cコンパイラで再現してみました。 Thompson hack は UNIX のログイン処理のコンパイル時にバックドアを仕掛けるようなコンパイラを作り、さらにコンパイラのソースコードからその痕跡を消し去るという神業です。 元ネタは Reflections on Trusting Trust という1983年に Ken Thompson が Dennis Ritchie と共にチューリング賞を受賞した際の記念公演です。 Ken Tohmpson はこの細工をしたコンパイラを配布したことはないと主張しているそうですが、このバックドアを利用したと見られる不審なログインがあったという報告もあったとのことで、実際にはベル研究所の外部に配布されていた

    自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報
    vanbraam
    vanbraam 2018/08/31
    とりあえず1度読んだがまだ原理がよく理解できてない.後で再度読もう
  • なぜGo言語はエラー返却に例外機構を使わないのか - 嵐の小舟より

    Go言語 FAQより引用すると 例外(exception)がない理由は? 我々は、処理構造を制御するためのtry-catch-finally形式の例外処理機構によって、コードが入り組んでしまうと考えています。 とのことです。 うーん、これだけじゃよく分かりません。 知りたいのは、 「例外機構が有用な場面」についてGo言語ではどのように対処するのか? はたしてGo言語の他の機能を組み合わせることでカバーできるのか? 「例外機構ではコードが入り組んでしまう」というのはどういうことを指しているのか? 自分の探し方が悪かったら申し訳ないですが、 講演やら Effective Go やらでこういったことに言及している部分を見つけられなかったので、 調べた内容と自分の推測をまとめてみます。 結論としては 例外機構が欲しい場面は Go 言語の他の機能でカバーできそう 例外機構によるエラー返却では、関数の

    vanbraam
    vanbraam 2018/08/31
    例外は大域脱出の方法の1つだと常々考えていたので,同じ様な観点から語る文章を知る事ができて嬉しい;例外が並列処理向きではない,というのは言われてみれば確かになぁ,と思った
  • Go言語の例外を必ず扱うような言語機能のありがたさ - 日記マン

    僕はGo言語が好きだ。そのGoがもたらす恩恵のひとつとして、例外周りのセマンティクスがある。 Goでは例外はerrorという型の値に抽象化され関数の返り値として記述することが多いというのはご存知だと思う。 func GetUser(id int) (*User, error) { // do some thing ... if err != nil { return nil, err } return user, nil } 上記の例のように、複数の返り値を設定できる言語機能を利用して、 第一にその関数に期待する主要な出力のデータ、第二に関数内で発生した例外(error型の値)を伝播させるのが一般的な記述だ。 この if err != nil {return err} を毎回書くのが(たとえコピペでも) 「めんどくさい」、「冗長だ」という意見を持つプログラマもスクなくはない。 個人的には気

    Go言語の例外を必ず扱うような言語機能のありがたさ - 日記マン
    vanbraam
    vanbraam 2018/08/31
    例外処理を強制する,という意味では,Javaの検査例外も同じなのだが,Goだと擁護する人もいるのにJavaの方は(今は)ほぼ批判一色なのは何故なのだろう?(この記事の擁護はJavaの検査例外には余り当てはまらないが)