タグ

hogeとプログラミングに関するt-murachiのブックマーク (22)

  • 滅びてほしい認証系の実装の話

    こんにちは、富士榮です。 ちょっと前に某所でダメダメな認証系の技術実装ってなんだろうねぇ、、という話をしていたことをXで呟いたところ、色々とご意見を頂けましたのでまとめて書いておきます。

    滅びてほしい認証系の実装の話
    t-murachi
    t-murachi 2024/04/26
    PCIDSS取得必須って、まさか自前でカード番号保存してるわけじゃないよね? (ふつーは決済取引サービスが間に入ってそのサービスが払い出すユーザーIDみたいなので管理すると思うんだけど…)
  • JavaScriptにセミコロンは入れるのか?入れないのか? - Qiita

    結論 どちらでもいい セミコロン付けても付けなくても落とし穴はある ESLintを利用することで落とし穴を検知できる 私はセミコロンつけない派 自動セミコロン挿入とは 自動セミコロン挿入(automatic semicolon insertion) この仕組みのおかげでセミコロンを使わなくてもコードを書くことができ、コンパイラが行末を察してセミコロンを挿入してくれる 自動セミコロン挿入のしくみはECMAScriptで規定されており、自動セミコロン挿入はJavaScriptエンジン間で可搬性がある 自動セミコロン挿入には落とし穴があり、ルールを理解しておく必要がある 第1のルール:セミコロンが挿入されるのは、"}"トークンの前か、改行の後か、プログラムの末尾だけ

    JavaScriptにセミコロンは入れるのか?入れないのか? - Qiita
    t-murachi
    t-murachi 2022/08/15
    「最近のセミコロンを書かない言語」FortranとかCOBOLとかBASICとかのことかな(´・ω・`)
  • 「プログラマはなるべくコードを書くな」という言説

    経験豊富なプログラマほどこの言説をすっと理解して、経験の浅い人ほど理解できないらしい。 よくある誤解に「学習のためには車輪の再発明をした方がいい」というものがある。 これは間違っている。学習のためであっても、既製品の劣化コピーを作るよりも、既製品を利用した方が学ぶものは多い。 たとえば、初心者がデータを保存するしくみを試行錯誤して実装したところで、既存のリレーショナルデータベースよりも良いものができるはずがない。 一方、最初からデータベースを使っていれば、単にデータを保存すると言う目的を達成するだけではなく、主キーや外部キー、インデックス、トランザクションやSQLなどの重要概念を学ぶことができる。 プログラミング初心者が車輪の再発明をするのは将棋で言えば、駒の動かし方を覚えただけの初心者が「一手目は76歩がいいのか26歩がいいのか」なんてことを延々と考えているようなものである。そんなことに

    「プログラマはなるべくコードを書くな」という言説
    t-murachi
    t-murachi 2021/06/19
    そういう意味で言うと大抵の仕事は誰かの車輪の再発明だし、大抵の思いつきもやっぱり誰かの車輪の再発明なので、究極的にはプログラマーになるなになっちゃうのよね(´;ω;`)
  • プログラミング初心者は変数名やメソッド名を略さない方がいいよ、という話 - give IT a try

    今回のエントリでは先日、僕が勤めているソニックガーデンで話題になったプログラミング関連の小ネタを書きます。 それは何かというと、「プログラミング初心者は変数名やメソッド名を略さない方がいい」という話です。 長い変数名やメソッド名はつい略したくなります。 実際、僕も長い名前を略すときはよくあります。 ですが、略称を使うのは長年の経験から「この略称は一般的だから誤解を招くことはきっと少ないだろう」とか「前後の文脈から、変数の中身は誰が見ても明らかだろう」という想像が付いた場合だけです。 一方、プログラミング初心者の人は経験が浅いため、「一般的かどうか」とか、「誤解が発生しないかどうか」といった判断ができません。 そのため、他の人が見たときに「え、何この変数名?」と思ってしまうような略称を付けてしまう恐れがあります。 たとえば、先日のコードレビューで、初心者の人がrev_noという名前の変数を定

    プログラミング初心者は変数名やメソッド名を略さない方がいいよ、という話 - give IT a try
    t-murachi
    t-murachi 2020/10/25
    スコープが限られている変数についてその役割を理解しづらいのだとすれば、それはもはや名前の問題ではない。「逆順の番号」と書かれていても、そのスコープの役割自体を知っていなければ、結局意味は分からない。
  • プログラミング初心者にmacをわざわざすすめるバカについて

    タイトル通りなんだが、 「mac プログラミング 初心者」とかググると、 「初心者にはmacおすすめ!」「世の中のプログラマはみんなmac使っている!」 というバカなことを言っているアホが仰山いて笑える。 しかも、最近、OS事情が大きく変わっているのに、未だにwindowsはunixコマンドガーとか言っているやつが居る。もうね、言葉を失うよね。 まず、最近のOS事情の移り変わりなんだけども、windowsが最近かなりLinuxに近い触感になるような機能が多く追加され続けている。 例えば、wsl(コマンド関係)やwinget(CUIインストール)が挙げられる。 他にそれらを取り巻くプログラミング事情としては、vscodeがある。vscodeは、powershellやsshだけでなく、wslのコマンドも使えるようになっている。 そのため、従来はpythonやらjsはめんどくさ。とおもっていた点

    プログラミング初心者にmacをわざわざすすめるバカについて
    t-murachi
    t-murachi 2020/08/24
    ドザー乙(´・ω・`) おいらからすりゃあ拡張子の表示設定から各ツールセットアップまで手間な上にWSLとかいう仮想環境で頑張る前提のWindowsもGCCの最新版用意するのに色々頑張らなきゃならんMacもどちらも大概(´・ω・`)
  • 10秒で衝突するUUIDの作り方

    11/25(月) LT Party presented by GeekHub (大阪) エンジニア向けゆるいフリーテーマLT大会!

    10秒で衝突するUUIDの作り方
    t-murachi
    t-murachi 2019/11/26
    一意であればいい (暗号論的に予測不可能である必要はない) んであれば、そも時刻と乱数の組み合わせにしてマイクロ秒ずれれば確実に異なるような値にしません? (´・ω・`)
  • Python中級者への道しるべ - Qiita

    はじめに 皆さんPythonでプログラミングしてますか? Pythonの基的な文法はある程度理解したけど、もう一歩詳しくなりたい、という方のために、中級的なテクニックや書き方について解説します。 この記事をマスターすれば、あなたも明日からPython中級者になれるかも? では、始めましょう。 変数の代入について Pythonでは、複数の変数の定義を1行で行うことが可能です。 普通に代入した場合:

    Python中級者への道しるべ - Qiita
    t-murachi
    t-murachi 2019/11/05
    中級者って小手先の「スマートな書き方」をたくさん暗記すればなれるものなの? こんな書き方ができちゃいます! のあとに、なぜそう書けるのか、その書き方がどんな場面で役に立つのか、に触れられないのはなぜ?
  • シェル芸を法律で禁じて欲しい

    パイプでつないでawk使ってハッカー気分かもしれないけどお前の書いてるスクリプトクソクソクソオブクソだから おとなしく Pythonで subprocess 使え!!!!!!!!!!!!!! <追記> 物のハッカーである皆さんはどしどし使ってくれて大丈夫ですよ^^; lispmemo シェル芸とシェルスクリプトは異なる概念では? そうですね、熱くなって言い過ぎました。 個人がターミナルに打ち込む一度きりのコマンドはOK、ファイルに保存した瞬間に違法としましょう。 <追追記> いやあ思いのほかBuzzっちゃって^^; awkの代替がsubprocess? awkは適当に思いついたから入れただけでパイプ使ってるんだから他のコマンドも入ってますよ^^; grepとかsedとかPythonで同様のことができる(実行時間が現実的な範囲で収まる)ならPythonの関数でお願いします。 読めないのか

    シェル芸を法律で禁じて欲しい
    t-murachi
    t-murachi 2019/10/11
    いや別コマンド必要ならふつーにshで書くべきだしそうでもないならPythonなりで完結すべきでは? (´・ω・`)
  • O/Rマッピングは百害あって一利なし! - Qiita

    O/Rマッピング(Object-relational mapping)について、Wikipediaには以下のように書かれています。 データベースとオブジェクト指向プログラミング言語の間の非互換なデータを変換するプログラミング技法である。 O/Rマッピングを実現する仕組みを、O/Rマッパーと言います。(両者を区別しなくても私が言いたいことは伝わると思いますので、ORMと統一して記述します)(また、個人的な理由で、プログラミング初学者向けに語りかける口調にしていますが、初心者向けの記事というわけではありません) 最近はWEBアプリ開発をするにあたって、WEBフレームワークに標準で何らかのORMが組み込まれていることが多いため、その存在を知らない人はまずいないでしょう。 私も何度かORMと向き合ってきましたが、そうこうしているうちに気がつきました。 ORMはめんどうくさい! …ってことに。 みん

    O/Rマッピングは百害あって一利なし! - Qiita
    t-murachi
    t-murachi 2018/11/20
    こういうことを書く人にPHPerが多い印象…(フレームの元-1) / 型整合性をコンパイルレベルでチェックしようという考え方が根底に無いと中々有り難みが得られないものなのかもとは思うが…(´・ω・`)
  • エンジニアの能力と今どきの難しさ

    エンジニア(ここでは主にプログラマー)に必要な知識や経験って、ざっくりベース、カテゴリ、実行環境というレイヤー分けられると思ってて、それぞれに対してはだいたい以下のような定義で考えている。 ①ベース コンピュータサイエンス(CS)などの理論的なもの低レイヤー②カテゴリ フロントエンド / バックエンド / クライアントアプリなど③実行環境 特定のプログラミング言語や開発環境やツール、フレームワークやライブラリなど最近の潮流で言うと、③の部分から入る人が多いと思う。 ③は比較的習得が楽なこともあって、初心者がプログラミングを始める際には一番コストパフォーマンスが高い。中身はブラックボックスであってもなんとなく動くものは作れるので、自己満足にしろ仕事にしろ成果として見えるものにはなる。 ただし、流行り廃りが速く、手を動かし続けないとキャッチアップしていけない。 ①は習得するのに時間かかる。その

    エンジニアの能力と今どきの難しさ
    t-murachi
    t-murachi 2018/06/28
    抽象的な話をしたいのか具体的な話をしたいのか。取り扱うものによって何がベースで何がミドルかって範囲は全然変わってくるしベースだから難しくて習得に時間がかかるって印象づけは初学者には害悪だよ。
  • コメントのいらないプログラムの書き方|NZ MoyaSystem

    パラメータを決める 次に関数に渡すパラメータを決めます。 関数の名前で表現されている処理を実現するには、どれだけのパラメータがあればよいか? と考えてみましょう。 今回の例でいえば「お客さんの年齢」と「日付」があれば、すべてのチケット価格が計算できます。 ということで、age と date の2つのパラメータを渡すことにします。 function calculateTicketPrice (age, date) { } パラメータの名前も、なにを表しているかわかるようにしてくださいね。 くれぐれも「hensu」とか適当な名前をつけたり、同じ変数にぜんぜん違う値を繰り返し代入したりすることのないようにしましょう。 テストを書く 次にユニットテストを書きましょう。 テストは常に更新される仕様書です。 業務ロジックをテストに説明させておけば、関数の仕様をコメントにいちいち書く必要などありません。

    コメントのいらないプログラムの書き方|NZ MoyaSystem
    t-murachi
    t-murachi 2018/05/15
    何で日本語で書かないの? JavaScriptでUTF-8ならシンボル名は日本語でいけるよね? adultPriceとかchildPriceとか、人身売買じゃないんだよ??
  • ソースコードの形状ルール | 吉本式BEM設計(BEM設計ベース)

    HTMLのソースコードの形状ルール 今回のこの記事に対しての反響について 日頃から他の実装者が制作したWebサイトのソースコードを見るようにしていますが、美しいソースコードだと思えるソースコードにはなかなか出会えません。 「美しいソースコード」という意味には、単に「美しい」だけではなく「見やすい」という意味も含めて使用しています。 タイトなスケジュールに追われて、ソースコードを整える余裕がないというのが現状でしょうか。 中でも最も気になるのが、インデントです。 Webサイトのソースコードを見ると8割程度の割合で、インデントが付いています。 なぜインデントを付けるのかを聞くと「コーディングミスが防ぎやすい」「作業効率が良くなる」という回答がきます。 これについて否定はしませんが、ではインデントを付けないとコーディングミスが起きやすく、作業効率が悪いのかというと、そんなことはありません。 私は

    ソースコードの形状ルール | 吉本式BEM設計(BEM設計ベース)
    t-murachi
    t-murachi 2018/05/11
    これに対する多くの批判とおおむね同じ理由でpep8をdisりたい自分ガイル(´・ω・`) ちなHTMLに関してはviewとしてメンテするんでなければインデントは「気にしない」派かなぁ。
  • Javaではif (isAdmin == true)というコードを書いてはいけない - Qiita

    はじめに 当たり前だと思うのですが、意外と守られていないことがあります。その1つの例として、条件分岐でのbooleanの扱いを挙げてみます。 ~~タイトルには「Javaでは」と書きましたが、おそらくどの言語でも同じです。~~JavaScriptなど他の言語では当てはまらないので取り消します1。 何がダメか 明確にコーディング規約で否定しているケースもありますが2、Javaでは以下のようなコードは書いてはいけません。 if (isAdmin == true) { // isAdminがtrueのとき } if (isAdmin == false) { // isAdminがfalseのとき }

    Javaではif (isAdmin == true)というコードを書いてはいけない - Qiita
    t-murachi
    t-murachi 2018/02/20
    このレベルの表記の揺れを許容できない人がチームに混入することの方がグループ開発は混迷すると思うんだ…(´・ω・`) あと条件分岐演算子を三項演算子と呼ぶのはもうやめよう(´・ω・`)
  • totoBIGの件は何が問題なのか、なるべく分かりやすく説明してみる: 不倒城

    目次・記事一覧(1) レトロゲーム(185) 日記(767) 雑文(511) 書籍・漫画関連(55) 子育て・子どもたち観察(115) ゲームブック(12) フォルクローレ・ケーナ・演奏関連(86) FF14(40) レトロでもないゲーム(334) 始めたばっか(13) アナログゲームいろいろ(37) 人狼(48) ネットの話やブログ論(60) 三国志大戦(20) 無謀的世評(52) ゴーストライター(16) 大航海時代ONLINE(38) FF3(6) Civ4(18)

    t-murachi
    t-murachi 2017/02/22
    この手のクラウドでいろんなところから同時に乱数を求められるケースではDBMSに乱数生成機能があればそれを使うべきだしそうでなければ専用のスレッドなりプロセスなりを立てるべき。種を毎回生成するのはアホ。
  • TechCrunch

    A Berlin-based software developer is fighting back after X suspended his account, claiming that research he conducted on the platform violated the company’s terms of service. Following Elon Musk

    TechCrunch
    t-murachi
    t-murachi 2016/10/24
    「あるいは貝は真珠になったりするものだ」shellはperlにはなれまへん(´・ω・`) / 研鑽し続けられるものだけが現役で居られるって、なにもコの業界に限った話じゃねーべ。
  • 変数に型がないということの利点について考える - Perl入門ゼミ

    Perl › 読み物 PHPPerlRubyPythonなどのスクリプト言語に対して、変数に型がないということを否定的にとらえる人もいるかと思います。特にC言語やJavaなどの静的言語を使ってきた人にとっては、型がないということが不安材料として目に映ることが多いのではないかと思います。 けれども、型がないということは、当に素晴らしいことです。型がないことによって、たくさんの面倒から解放されるからです。 どのような型の値でも代入できる まず基的なこととして変数に型がなければどのような型の値でも代入できるということです。つまり、受け取るときに、どのような型の値を受け取るのかを意識する必要がありません。 my $str = 'Hello'; my $num = 1; my $nums = [1, 2, 3]; my $person = {age => 2, name => 'taro'

    変数に型がないということの利点について考える - Perl入門ゼミ
    t-murachi
    t-murachi 2013/03/03
    「関数のオーバーロードが不要になる」でさすがに dis りたくなった。ヲレもまだまだ青いな… ('A`)=3
  • キャメルケースよりスネークケースで。 - 偏見プログラマの語り!

    プログラムを書くとき、たいていは何らかの命名規則に従って識別子を書くわけですが、その種類はだいたい 2 つじゃないかと思います。 ・スネークケース:スペースをアンダースコアに置き換えた表現。( chocolate_pie, candle_cake, ... ) ・キャメルケース:スペースを詰めて次の語を大文字から始める表現。( chocolatePie, CandleCake, ... ) プログラムってのは名前が 8 割とか言うひともいますけども、なんだかんだと複合語を記述する場面は死ぬほどありますし、しかも多くのプログラミング言語がスペースをトークンの区切りとしている以上、何かルールを設けないといけないんですよね。そうしないと「複合語の中にあるスペース」と「トークン区切りとしてのスペース」を区別できない。区別できないっていうかプログラム書けない。 で、どういうルールで書くかっていうと標

    t-murachi
    t-murachi 2012/01/22
    型ハンガリアンは不必要なら避けるべきであって、それは言語や環境を跨いで共通の認識ではない。 C++ で定数名を UPPER_CASE で書くのが流行りじゃないのは、マクロと区別したいという要求があったから。
  • 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)

    TwitterのTLで知ったのだが、少し前に海外掲示板で"sleep sort"というソートアルゴリズムが発明され、公開されたようだ。このアルゴリズムが面白かったので紹介してみる。 Genius sorting algorithm: Sleep sort 1 Name: Anonymous : 2011-01-20 12:22 諸君!オレは天才かもしれない。このソートアルゴリズムをみてくれ。こいつをどう思う? #!/bin/bash function f() { sleep "$1" echo "$1" } while [ -n "$1" ] do f "$1" & shift done wait example usage: ./sleepsort.bash 5 3 6 3 6 3 1 4 7 2 Name: Anonymous : 2011-01-20 12:27 >>1 なん…だと

    常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)
    t-murachi
    t-murachi 2011/05/20
    ネタとしては面白いけど、こういうのをアルゴリズムとは言わない。 / 「$1 / 10 |bc -l」の分母を大きくすればさらに早くなるんだろうけど、ソートの正確性も犠牲になる罠。
  • 【ハウツー】ゼロからはじめるVBA − VBA事始め編 | パソコン | マイコミジャーナル

    Copyright (C) Mainichi Communications Inc. All rights reserved. 掲載記事の無断転載を禁じます

    t-murachi
    t-murachi 2009/05/06
    p.3 の「変数名について」にて、型名識別のためだけの悪しきハンガリアン記法を推奨している…。これ本当に 2009年の記事か? ていうか、普通変数名に Pascal 記法は使わんだろう。
  • 技術書に頻出する「variable」と「parameter」の違いは何?

    プログラミングに関連する書籍には、数多くのIT英語が登場する。「variable」や「parameter」も、そうした言葉だ。果たして、どのような意味なのか。「dictionary.com」で調べた。 variable A symbol(like x or y) that is used in mathematical or logical expressions to represent a variable quantity.(数学的あるいは論理的な表現において、可変的な数量を表すために使われるxまたはyのような記号のことをいう) variableはそもそも「可変する」という意味がある。IT用語でも、variable name(可変名)やvariable length(可変長)などという形で使用されている。こうした義から転じて、数学やコンピュータサイエンスでは「変数」を表す言葉として

    技術書に頻出する「variable」と「parameter」の違いは何?
    t-murachi
    t-murachi 2009/02/22
    「どっちも変数という意味で」なんて書いたら返ってややこしくなるんでないか? parameter は「引数」でいいと思うんだが…。