タグ

ブックマーク / qiita.com (891)

  • こんなコードは嫌だ、古い書き方のコード駆逐したい(とりあえず9つ) - Qiita

    時代は令和ぞ、何を書いとるんや 転職してきた若いプログラマが変なコード書いている。 どうやら前社の社内研修で教わったとのこと。 さて、何を教わったのだろうか。 ※一応TypeScriptで書きましたが別にC#でも言えることです。 ※CやC++やアセンブラのことは全く知らないので、そのあたり詳しい人は今どんな書き方か記事書いていただけると勉強になります。 1.変数名が雑 クラス、関数、変数、どれも命名は難しいものです。1 大体が英語で大変です。けど頑張ってわかりやすい名前つけるようにしています。 読んで勉強してください。Google翻訳使ってください。 10行程度の短い関数ならretでもdataとか適当な名前でもいいけど 長くなるようならちゃんと名前つけてるようにしたほうがいいです。 わかりやすい変数名をつけることでひと目で、その変数の役割が理解出来ます。 // Goodってなんやねん!な

    こんなコードは嫌だ、古い書き方のコード駆逐したい(とりあえず9つ) - Qiita
    kiyo_hiko
    kiyo_hiko 2021/02/21
    なんだこれ
  • 海外「なぜ日本はハードウェアの時代と同じようにソフトウェアに秀でることができない?」 - Qiita

    Why doesn’t Japan excel in software as they did in hardware? (なぜ日はハードウェアの時代と同じようにソフトウェアに秀でることができない?) という英語Quoraのやり取り、分析が興味深かったので、まとめ。 仮説1: 日は完璧を求める 10人のエンジニアのソフトウェア開発会社を経営しているフランス人の友人が、ルイ・ヴィトン日支社のコンピュータシステムのマネージャーと同意した話:ソフトウェアはハードウェアではなく、産業用でもない。50年間同じトヨタカローラのように構築され、洗練され、完成されたものではありません。ゼロバグでそれを「完璧」にすることは不可能であり、したがって、「ゼロデフォルト」という、総合的な品質、継続的な改善を求める日人の精神に反するものです。 日は職人の国であり、漢字を書いたり、折り紙を折ったりする技術

    海外「なぜ日本はハードウェアの時代と同じようにソフトウェアに秀でることができない?」 - Qiita
    kiyo_hiko
    kiyo_hiko 2021/01/31
    ホルモンだ。平均的な日本人が世界でも稀に見るワクワクしない人達なので…。コメ欄みても判る理屈っぽさと注文の多さ。ワクワクすれば任天堂みたいに世界を舞台とするソフトウェアプラットフォーム企業も出てくる
  • カッコの補完を手軽にカッコ良く - Qiita

    if (bool)までは良いです。 その次の{を入力したら}が補完されて、[Enter]キー押して、[Tab]キー押して… きぃぃ!これも補完したい!! ということで、以下を.vimrcに追記しましょう。 inoremap { {}<Left> inoremap {<Enter> {}<Left><CR><ESC><S-o> inoremap ( ()<ESC>i inoremap (<Enter> ()<Left><CR><ESC><S-o> ちなみに3行目の()<ESC>iは、ワタクシがいつも叩いているキー。Vimmerっぽくない?? せっかくなので、みんなやってるGIFアニメを貼り付けてみましょう。 これでも、煩わしさを感じる時があるんですよね。 日本語入力している時とか、ペアコーディングで、ワタクシのVimに慣れていない人が()と打ってしまった時とか。 それは、また次回のネタに。

    カッコの補完を手軽にカッコ良く - Qiita
  • ‪データの集計ではsort | uniq -c をシェル芸で良く使うけど大量データには向かないのでawkでもっと高速な処理を書く‬ - Qiita

    ‪データの集計ではsort | uniq -c をシェル芸で良く使うけど大量データには向かないのでawkでもっと高速な処理を書く‬ShellScriptAWK sort | uniq -c という操作は、データの集合から件数を数えるのによく使いますね。 uniq はデータから重複データを取り除いたり、重複したデータだけを取り出したり、あるいは件数を数える、という処理ができるコマンドですが、実行時の前提条件として予めソートされたデータが必要です。だから先に sort しています。 しかしデータの母集団が大きいと sort の処理時間がボトルネックとなって、数分単位のオーダーで処理待ちが起きることがあります。そのような場合に sort | uniq -c とは違う方法で集計を行えば、処理速度を大幅に改善できる可能性があります。 例:1から1000までのランダムな値の集合1億件について、値ごとの

    ‪データの集計ではsort | uniq -c をシェル芸で良く使うけど大量データには向かないのでawkでもっと高速な処理を書く‬ - Qiita
  • さよなら CentOS、こんにちは Rocky Linux & Lenix - Qiita

    CentOS 8 が 2021-12-31 でサポート終了 となります。 従来 2029年までとされていたのですが、期間が大きく短縮されました。 主な更新 2021-06-28 Rocky Linux がリリースされました。 2021-04-07 CloudLinux から AlmaLinux がリリースされました。 2021-01-04 Rocky Linux のリリース予定(2021 Q2)について追記しました。 2020-12-21 CloudLinux, Project Lenix のリリース予定(2021 Q1)について追記しました。 記事の概要 3行 CentOS 8 は 2021-12-31 でサポート終了です。 移行先として推奨される CentOS Stream はアップストリーム(家 RHEL より先にバージョンがあがる)で更新されるため、RHEL とのバージョン互換

    さよなら CentOS、こんにちは Rocky Linux & Lenix - Qiita
  • IntelliJ IDEA, PyCharmのCommunity版はビジネス/商用利用できる - Qiita

    結論 タイトルの通り、JetBranins社のIDEであるIntelliJ IDEAとPyCharmのCommunity版はビジネス/商用利用できます。JetBrains自身が「IntelliJ IDEAとPyCharmのCommunity版は商用利用できる」と述べています。 既製の商用IDEのライセンスの住み分け事例から「Community版は商用利用できない」という先入観を持つ方がいますが、IntelliJ IDEAとPyCharmのCommunity版については問題なく商用利用可能です。 NOTE: なおAppCode, CLion, GoLand, PhpStorm, ReSharper, RubyMine, WebStorm等のJetBrains製品についてはCommunity版がありません。このため記事の対象外となります。 背景 記事は「モダンなJava開発ガイド」の一部を

    IntelliJ IDEA, PyCharmのCommunity版はビジネス/商用利用できる - Qiita
  • 分岐アンチパターン - Qiita

    「秩序のない分岐なんてほろんじまえ!!!!」 レガシーなシステムを触った時に、こう思ったことはあるのではないでしょうか。 私にもよくそう思うときがあります。 そんな絶望を生み出さないように分岐に関するアンチパターンと対策を考えてみました。 まず、なぜ生み出されるのかを書き出してみましょう。 秩序のない分岐 たくさんの分岐 →迷子になる ネストが多い →インデントが見づらい。 分岐ごとに条件が複雑 →覚えるのがつらい。 気づいたらスパゲッティコード →処理を追っている間にお腹が空き、スパゲッティをべちゃうので太る。 テストがしづらい。テストケースが作りづらい。 →テストをするためのテストが必要とか言い出してしまう。 ifだけに畏怖 →書きたかった。 分岐処理に出会った時、これだけの問題があることに気づきました。 私はもう絶望したくないし、私のように絶望する人を作りたくない。(そして太りたく

    分岐アンチパターン - Qiita
    kiyo_hiko
    kiyo_hiko 2020/12/24
    個人的に2番めの例は「(!empty($article) && $article->type === 'news' && strtotime(略) < strtotime('now')) || return null;\r\n// やりたいことをじっくり書く」かな。ものぐさなのでとかく行数減らしたい
  • 新卒1年目が荒れ果てた開発環境に1年間でCIを導入し単体テストを布教した話 - Qiita

    この記事は 「Develop fun!」を体現する Works Human Intelligence Advent Calendar 2020 21日目の記事です。 昨日の記事は@sparklingbabyさんのStream API がもっとわかる記事でした。 あらすじ 私は2019年にWorks Human Intelligence(正確には分社前の会社)に新卒入社し、 19年10月からプロダクト開発部門に配属され、SETエンジニアとしてとある製品のJava開発環境の改善に取り組んでいます。 ざっくりとプロダクト開発を紹介するとこんな感じです。 3万クラス程度ある大規模Java Webアプリケーション 開発環境はEclipseを使用 開発者のOSはWindowsのみ Before 私が開発チームに参加した時点では 部門として新規開発に注力しており、足下の環境改善をやる担当者がおらず、 い

    新卒1年目が荒れ果てた開発環境に1年間でCIを導入し単体テストを布教した話 - Qiita
    kiyo_hiko
    kiyo_hiko 2020/12/22
    異世界に召喚された勇者みたいな活躍っぷり。
  • 全ての開発者が学ぶべき5つの言語 - Qiita

    「どの言語を学ぶべきか」という議論はエンジニア向け記事の定番ネタですが、HackerNoonに投稿された5 Programming Languages Every Master Developer Should Learnという記事がなかなか興味深かったので翻訳してみました。 (2018/11/04追記) こちらの記事に関する「別視点からの意見」として下記のような記事を追加いたしました。宜しければこちらも併せてご参照ください。 Ruby->Go->Scalaという習得順序がエンジニアの爆速の成長に最適である理由 はじめに 「プログラマーは新しい言語を毎年1つは習得するべきだ」という趣旨の文章をどこかで読みました。(多分CODE COMPLETEだったと思いますが) もしそれが難しくても、キャリアの中で最低限この後に紹介する5つの言語に通じておくことをお薦めします。 あらゆる会社は、多言語を

    全ての開発者が学ぶべき5つの言語 - Qiita
    kiyo_hiko
    kiyo_hiko 2020/12/21
    Cを最初期にやった人って無益な変数の前方宣言してみたり、bufとかflgとかよくわからん変数名使いがちなイメージある。
  • 他の言語(Java)っぽくPerlを使う話 - Qiita

    この記事はPerl Advent Calendar 2018の2日目の記事です。 皆さん、PerlでOOPしてますか? 私は今年Perlに入門したのですが、Perlのオブジェクト指向はかなり独特だと感じました。 MouseやMooseを使って簡単に書くことはできますが、やはりそれでも他言語の構文との差はあるように思います。 そこで、Perlの柔軟な文法を活かしてclass構文を作ってみることにしました。 方針 できるだけJavaっぽくする blessは裏側でやる クラス名をクォートで囲わなくてはいけない箇所を減らす 素のPerlよりも堅牢になる仕組みを組み込む 実装 https://github.com/yumlonne/p5-Class-JavaLike 突貫で作っていたためコード汚いです 現在実装できているのは以下の機能です class構文 アクセス修飾子(public・protect

    他の言語(Java)っぽくPerlを使う話 - Qiita
    kiyo_hiko
    kiyo_hiko 2020/10/28
    うーんJavaかなこれは…?言語に逆らったコードに見える。怖い http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.8.2.htmlhttp://www.pro.or.jp/~fuji/computerbooks/c/c.modula2.html みを感じるのは俺だけだろか
  • ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習

    最近、あまりプログラミングが得意でない人のサポートをする形で、長い時間にわたってペアプログラミングを行っている。そのなかで、気がついた悪い習慣と成長するための良い習慣というものをまとめてみる。 この記事のバックグラウンドとなる体系的知識がになりました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング あわせて読みたい 経営者マインドが足りない!vs. 現場に任せてくれない!の対立をなくすカードゲームをつくった話 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 心理的安全性ガイドライン(あるいは権威勾配に関する一

    ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習
    kiyo_hiko
    kiyo_hiko 2020/10/21
    はい
  • 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita

    はじめに 先日ツイッターで見かけた呟き pic.twitter.com/33Yk02hu1U — TOMO (@tomozh) October 14, 2020 そういうこともあるのか的な反応もあるようなので具体例を挙げてみることにする。 例1 所謂FizzBuzz問題。 #include <stdio.h> void fizzbuzz(int n) { int next; int i = 1; do { printf(i % 15 ? i % 5 ? i % 3 ? "%d\n" : "Fizz\n" : "Buzz\n" : "FizzBuzz\n", i); if (i++ >= n) next = 0; } while (next); } int main(void) { printf((char[]){""}); // この位置にprintfが無いとなぜか動かない fizzbuz

    「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
    kiyo_hiko
    kiyo_hiko 2020/10/20
    Cこわ…手を出さんとこ
  • いまから始めるCommon Lisp - Qiita

    この記事はLisp Advent Calendar 2017の二日目の記事です。 はじめに この記事は、Common Lispという初めての人には初めましてな言語の入門記事です。 この世には、Common Lispというとってもカッコいい言語が存在します。その言語はANSIで規格が定められており、宇宙空間で動いたり深海で動いたりし、メタプログラミングが可能で、しかもC言語並に速いという、超クールな言語なのです。 歴史あり、逸話ありのLispであって、実用的と言われるLispです。そんな言語、いますぐに始めてみたいと思いますよね? しかしググってみると、なんだか処理系っていうの (?) がたくさんあったりしてどれを選んでいいのかわからない。rbenv的なものはないの? パッケージマネージャは? アプリケーションのビルドとかどうしたらいいの? ぱっと実用的なプログラムをどう書いたらいいかわから

    いまから始めるCommon Lisp - Qiita
    kiyo_hiko
    kiyo_hiko 2020/10/18
    環境構築(SBCL、Roswell、Slimv)、記法、基本的な特殊形式、簡易なアプリ作成等押さえてて読みやすいチュートリアルだった。
  • エンジニアなら知っておきたい生産性を爆上げするツール8選 - Qiita

    はじめに 今まで自分が使ってきた中で、これは生産性が爆上げする!と思うものを厳選しました 是非最後までご覧ください 1. Biscuit 公式サイト -> Biscuit 複数のアプリをグループ分けしたり、まとめることができるアプリケーション 調べ物が多いエンジニアは、Chromeのタブがカオスになっていることがよくあります 個人的にはあれこれなんでも登録するのではなく、よく使うアプリだけをまとめるのが良いかなと思っています 設定のインポートやエクスポートも簡単なので、別のPCへの移行も楽チン 僕のBiscuitはこんな感じです⬇︎ 2. Notion 公式サイト -> Notion 結論から言うと、私はNotionがないとダメな体になっています 出会いは2020年の2月頃、メモ帳よりも自由度が高くて何か良いものはないだろうかと模索していた頃にジャストフィットしました 単純なメモも取れる、

    エンジニアなら知っておきたい生産性を爆上げするツール8選 - Qiita
    kiyo_hiko
    kiyo_hiko 2020/10/17
  • Vimのプラグインマネージャの種類と選び方 - Qiita

    この記事はVim その2 Advent Calendar 2018の17日目の記事です。 みなさんVimのプラグインマネージャには何をお使いでしょうか。 vim-plug、vim-jetpack、dpp.vim、volt、lazy.nvim、などなど、Vimのプラグインマネージャには色々種類がありますが、それぞれ自分のスタイルにあったものを用いていることと思います。1 そんなプラグインマネージャですが、標準のプラグイン管理機能がある今なぜ使われているのか、各プラグインマネージャはそれぞれ何が違うのか、色々種類がある中でどう選んだものか、といったことを当記事では紹介します。 要約 (2024-01-07更新) プラグインマネージャは、vim-plug、vim-jetpack、dein.vim、標準機能のうちいずれか、 どれか躓かずに使えたものがあれば、それを使えば大丈夫です。 プラグインマネ

    Vimのプラグインマネージャの種類と選び方 - Qiita
  • PowerShellでもっといい条件文の書き方5選 - Qiita

    この投稿は以下の記事を英語JavaScriptから日語(意訳)・PowerShell + 補足したものです。 5 Tips to Write Better Conditionals in JavaScript JavaScriptやPowerShellなどの言語は少々言語ハックした記事が多いですが、 この投稿では原文通り言語ハックはせず、読みやすい書き方はこうだ、と思うものを書きました。 ソースコードはPowerShellですが、他の言語にも通ずるところはあると思います。 また、ところどころSonarQube(ソースコードの静的解析ツール)の規約の中から該当するルールを引っ張り出し、 なるべく、私見により過ぎないよう心がけてます。 不備などあれば、ご指摘ください。 この投稿で使用したソースコードはgistに置いてます。 環境 $PSVersionTable Name Value ---

    PowerShellでもっといい条件文の書き方5選 - Qiita
    kiyo_hiko
    kiyo_hiko 2020/09/30
    $elem -in $setな感じで書く、早期return、引数検査、条件演算子、HashTable、ANY/ALLなど。
  • .gitignore で、git のバージョン管理から無視するファイルを設定する - Qiita

    git initとしたフォルダーに.gitignore ファイルを作れば、そこに書かれたファイルは git のバージョン管理から無視されます。 C# で使う場合の例: # .gitignore # git initとしたフォルダーに.gitignore ファイルを作れば、 # そこに書かれたファイルは git のバージョン管理から無視されます。 # [書き方] # 行頭に # を書くとその行はコメントとみなされ、無視されます # *.a # .a ファイルは無視 # !lib.a # しかし、lib.a ファイルだけは .a であっても追跡対象とします # /TODO # ルートディレクトリの TODO ファイルだけを無視し、サブディレクトリの TODO は無視しません # build/ # build/ ディレクトリのすべてのファイルを無視します # doc/*.txt # doc/no

    .gitignore で、git のバージョン管理から無視するファイルを設定する - Qiita
    kiyo_hiko
    kiyo_hiko 2020/09/30
    ctags -Rがいろんなサブパスに置くtagsを無視させる → `**/tags`
  • sbclでexeを作る - Qiita

    何の記事? 今回はタイトルどおりSBCL(Steel Bank Common Lisp)で単体実行可能なexeファイルを作ろう という記事です。 先に結論 では早速exeを作ってみます。 (load "foo.lisp") ; 必要なファイルをloadする (sb-ext:save-lisp-and-die "foo.exe" :toplevel #'main :executable t) sb-ext:save-lisp-and-dieはlispのコアイメージを書き出す関数です。 :executable tを指定した場合、出力されるファイルはsbclのランタイムとコアイメージを含みます。 これで一応exeファイルを作成することができます。 解説 sb-ext:save-lisp-and-dieにはいくつかのキーワード引数があります。 詳細についてはSBCLに公式サイトで確認できるので省き

    sbclでexeを作る - Qiita
    kiyo_hiko
    kiyo_hiko 2020/09/24
    (sb-ext:save-lisp-and-die "specified-name.exe" :toplevel #'your-main-function :executable t) という話。うちではlispbuilder-sdlで組むのでさらに、文中にある:application-type :guiを指定する
  • Vim script + Lua で rogue.vim を作った話 - Qiita

    この記事は Vim Advent Calendar 2014 の6日目の記事です。 rogue.vim について データ分離版ローグ・クローンII (rogue_s) をVimプラグインに移植した rogue.vim を作りました。 (ローグとはなんぞやという人は http://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%BC%E3%82%B0 あたりを参照してください。) rogue.vimのインストール方法は、普通のプラグインと同じ方法です。 GitHubvim.orgからダウンロードしたzipファイルを展開してruntimepathの通ったディレクトリ($HOME/.vimや$VIM/vimfilesなど)にコピーするか、 何らかのプラグインマネージャーでインストールしてください。 https://github.com/katono/rogue.vi

    Vim script + Lua で rogue.vim を作った話 - Qiita
    kiyo_hiko
    kiyo_hiko 2020/09/08
    ゴイス あとで遊ぶ
  • Markdownの表でセルのバックグラウンドにカラーを - Qiita

    はじめに Markdownの表でセルのバックグランドにカラーをつけるやりかたです。 VSCodeのプレビューやPDF出力に反映できます。 忘れないうちに記事にしておきます。 ※2020/11/06 MarkDown Preview (v0.5.13)の動作が少し変更されたようで全体に見直しました。 前提 Windows 7 以上のOS VSCode(Visual Studio Code)インストール済み VSCode拡張機能 Markdown Preview Enhancedインストール済み (2020/11/16 v0.5.13) VSCode拡張機能 Markdown PDFインストール済み 元ネタの表 Markdownの記述 № 色 値

    Markdownの表でセルのバックグラウンドにカラーを - Qiita
    kiyo_hiko
    kiyo_hiko 2020/08/26
    やはりタグのベタ書きしか無いもんなのかな…