タグ

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

タグの絞り込みを解除

programmingとProgrammingに関するzaki1010のブックマーク (790)

  • なぜ自動テストの導入は失敗するのか? - プログラマーの脳みそ

    開発室の雑談。営業側のマネージャが言うには 「今のプロジェクトで自動テストの導入を試みている話をしたら、XXXさんのところでも過去にいくつか導入を試みたけどもみんな上手くいかなかったって話になって」 なるほど? まあ確かに自動テストはシステム開発にとって魅惑の技法ではあるものの、では導入がうまくいっているか? というと普及率は低いと言わざるを得ない。私がお手伝いしたプロジェクトでは、元請け側から自動テストをやるお達しが来たわけだが、紆余曲折あって掛け声倒れのような状態になってしまった。 ビジネス書の煽りタイトルのような件だが、古式ゆかしき受注生産の業務システム開発プロジェクトに自動テストを導入しようとして失敗する事例を聞いたので、僕なりに分析して見出した要素を挙げておこうと思う。 V字モデル ソフトウェア開発の手法としてV字モデルというものがある。 オーダーメイドでシステムを作るにあたっ

    なぜ自動テストの導入は失敗するのか? - プログラマーの脳みそ
  • もう無駄にfor文書くのやめようや...。 - Qiita

    はじめに Java8以降で何も考えずに「for文を用いた繰り返し処理」を使うのはやめましょう。 書き手、読み手にとっても良くないし、特別な理由がなければ積極的に新しい技術を使うべきです。 良くない理由としては様々ありますが、主な理由としては以下の点が挙げられます。 処理の内容をパッと見て把握しづらい 不具合のトリガーになる ソースコードの肥大化 では具体的な例を次に示します。 具体例1 NGパターン List<String> nameList = Arrays.asList("Taro", "Jiro", "Saburo", "Shiro", "Goro"); for (int i = 0; i < nameList.size(); i++) { System.out.println(nameList.get(i)); }

    もう無駄にfor文書くのやめようや...。 - Qiita
  • 良いコードとは何か - エンジニア新卒研修 スライド公開|CyberZ Developer

    CyberZ CTO室のメンバーの森 (@at_sushi_at) です。 先日、株式会社サイバーエージェントの2021年度 エンジニア新卒研修でコードの品質に関する講義を行いました。 そこで話した内容とスライドを完全公開します。 45分の内容のため、かなり長いですが、個人的にぜひ一読して欲しい内容になっています。 はじめに こんにちは、森 篤史と言います。2019年度入社で今年で3年目になります。株式会社CyberZのOPENREC.tvというプロダクトでAndroidアプリチームのリーダをやっています。 最近はプログラムを書く仕事以外に、次世代マネジメント室という全社横断組織でDevelopers Blogの改善プロジェクトを実行したり、CyberZ CTO室で組織活性化に取り組んでいます。 あと、2019年度の未踏スーパークリエータにも認定されました。 メインの仕事としては、入社して

    良いコードとは何か - エンジニア新卒研修 スライド公開|CyberZ Developer
  • どうして Julia を作ったか

    プログラミング言語「Julia」開発者さんの文章がとても好きなので、雰囲気重視で訳しました。結構意訳です。原典:https://julialang.org/blog/2012/02/why-we-created-julia/ =================================================「どうして Julia を作ったか」 それは、僕らが欲張りだからだ。 Matlab はめっちゃ使う。僕らの中にはLispの天才もいるし、PythonRuby のすげー奴、Perl を巧みに使いこなす奴もいる。毛も生えない子供の頃からMathematica で遊んだ奴もいる。いまだにツルツルな奴だって仲間だ。Rではアホみたいにたくさんグラフを書いた。C言語からは、いつだって冒険の匂いがする。 ぜんぶ、大好きだ。面白いし、いろいろなことができる。何かをしたいと思った時--科

  • 「テスト書いてないとかお前それ〜」が私の代名詞になるまで。テスト駆動開発とともに歩んだキャリア - Findy Engineer Lab

    におけるテスト駆動開発の著名人といえば誰か? この問いを投げかけられたとき、多くのエンジニアが思い浮かべる人物がいます。ITコンサルタント・ソフトウェアエンジニアの和田卓人(@t_wada)さんです。和田さんは日のテスト駆動開発の第一人者として、長年、この分野の実践や講演・執筆などの普及活動を続けてきました。 こう書くと、読者のなかには「和田さんはもともとテストが好きだったから、テスト駆動開発の第一人者になれたのでは」と思われた方もいるかもしれません。しかし、その答えはNOです。むしろ和田さんは、テストが嫌いなエンジニアだったといいます。ある出来事をきっかけとして、嫌いだったテストを好きになれる方法を見つけたのです。 読者の方々にも「自分には○○なんて向いていない」という印象を抱いている技術領域があるかもしれません。ですが、そんな領域にこそ、あなたの新たな可能性が詰まっているかもしれ

    「テスト書いてないとかお前それ〜」が私の代名詞になるまで。テスト駆動開発とともに歩んだキャリア - Findy Engineer Lab
  • 新人ITインフラエンジニアに役立つ学習リソース まとめ

    まえがき IT業界で10年弱努めて見て、現在は教育部門にいることもあり”新人教育に向いている教材は有りませんか?”という質問を頂くことがあります。 昨今ITに関する様々な知識は情報が溢れていて、少し検索エンジンで調べれば大量のリソースにすぐアクセスができます。 一方で、当に価値があるものも大量の情報の中に埋もれてしまいがちです。 記事が目指すポイントとしては、”これからIT業界インフラエンジニアとして頑張るぞ”という方向けが、短時間で良質なリソースにアクセス出来るようにすることです。(私自身のおすすめ色が強いです) なお、ここで想定する”インフラ”というのは次の要素を想定しています。 サーバ オペレーティング システム ストレージ ネットワーク 仮想化 パブリッククラウド ですから、次のようなカテゴリについては全く触れていない、あるいは触れていてもかなり部分的だと言う点をご理解下さい

    新人ITインフラエンジニアに役立つ学習リソース まとめ
  • 2分間コーディングのすすめ、コードを書く習慣のハードルを下げる

    最近私は「2分間コーディング」と呼んでいる取り組みを行っています。文字通り2分間で完了する程度の、非常に簡単なコーディング作業を繰り返すことで、 技術書の最初のページの数行のコードだけ写経して走らせる ネットで見つけたサンプルコードをコピペして走らせる など、多くはコピペするだけで終了するくらいの作業量です。しかし、その頻度を今までの何倍にも増やすのがポイントです。実際にはやっているうちに気分が乗って、そのまま5分、15分以上とコーディングが続くことも多いのですが「まずは2分で終わることだけを始める!」と強く意識することで、コーディングの頻度が大きく増えました。 この記事では、私にとって2分間コーディングがどういう効果があったか、なぜ取り組みを始めたかを紹介します。 効果: 新しい技術を覚えやすくなった 2分間コーディングを始めてから、今まで公式ドキュメントやを読んだだけで終わってしまい

  • Google Style Guides

    Google Style Guides Every major open-source project has its own style guide: a set of conventions (sometimes arbitrary) about how to write code for that project. It is much easier to understand a large codebase when all the code in it is in a consistent style. “Style” covers a lot of ground, from “use camelCase for variable names” to “never use global variables” to “never use exceptions.” This pro

    zaki1010
    zaki1010 2021/02/17
    Googleによる各種言語のコーディングガイドラインへの入口。
  • どうやってコーディングを学ぶか - Magnolia Tech

    CPANに上がってるモジュール、一つ一つの粒度が小さいから読みやすいし、ドキュメントもテストもしっかり揃ってて挙動を把握しやすくて、自分にとっては最高の教科書だったな 今でも他の言語で分からない時に同じ目的のPerlモジュールを見る事があるし— magnoliak🍧 (@magnolia_k_) 2021年1月7日 自分が学んだ頃の、時代的なものもあるけど、今でもPerlのモジュールは粒度が小さく、ドキュメント、テストがしっかり用意されているので、参考にするにはちょうど良いと思っている。 ScalaScalatraっていうWAFのメンテナンスに参加しているんだけど、HTTPプロトコルだったり、Webのお作法的なところが分からないことが有ったら、たいていPlackか、Rackのソースを見て理解するところから始める、みたいなことしてる— magnoliak🍧 (@magnolia_k_)

    どうやってコーディングを学ぶか - Magnolia Tech
  • 現場のエンジニアが解説!令和最新版プログラミング独習方法。質の悪いプログラミングスクールの毒牙にかかる前に実践すべきマッチョな学習フロー

    mizchi @mizchi プログラミング独習: 令和最新版 - 月額1000円のN予備校のウェブプログラミングコースでフロントエンドと Node の基をやる nnn.ed.nico/pages/programm… - jsprimer.net を上から順になぞる - 日大尾上准教授の「Web プログラミング」のReact チュートリアルをやる zenn.dev/likr/articles/… リンク N予備校 プログラミングコース 初めてのプログラミングから 現場のプログラミングまで学ぶ | N予備校 N予備校 プログラミングコースは、ドワンゴの現役エンジニアが教えるプログラミング学習サービスです。プログラミング完全未経験者でも前提知識なく始められて、開発現場で活躍できるほどのスキルが身につくカリキュラムを、自分に合ったペースで学ぶことができます。 273 users 614

    現場のエンジニアが解説!令和最新版プログラミング独習方法。質の悪いプログラミングスクールの毒牙にかかる前に実践すべきマッチョな学習フロー
  • オーディオプログラミング言語のカレンダー | Advent Calendar 2020 - Qiita

    オーディオプログラミング言語について、メジャーどころや面白そうなものを実際に触ってみて紹介する企画です。 共通のテーマは、(1)440Hzのサイン波生成+ゲイン調整、(2)wavファイルに400msecのディレイをかけてフィードバックとウェットレベルを調整の上で再生、としました。それぞれの言語でこの二つのプログラムを実装します。 オシレーター、ファイル読み込み、バッファ格納、フィードバック処理といった頻出処理の実装方法(もしくはライブラリ利用方法)がひととおり確認できて、言語間の比較もしやすいのではないかと思います。 githubの方も公開しました。こちらはすべての実行確認済みソースコードをダウンロード可能です。 https://github.com/aike/audiolang

    オーディオプログラミング言語のカレンダー | Advent Calendar 2020 - Qiita
  • JavaScript入門: 基礎知識をGIFアニメで分かりやすく解説 -総まとめ

    JavaScript QuestionsのLydia Hallie氏の「JavaScript Visualized」シリーズすべての翻訳を完了したので、まとめて紹介します。 JavaScriptエンジンの仕組みをはじめ、イベントループ、スコープチェーン、プロトタイプ継承、非同期処理、ジェネレータ関数、Hoisting(巻き上げ)など、GIFアニメを使用して詳しく解説しています。 シリーズ7すべてと、プラス1として楽しく学べるクイズもあります。 JavaScript イベントループの仕組み JavaScriptでエラーの原因となるHoisting(巻き上げ)の仕組み JavaScriptのスコープチェーン・変数参照の仕組み JavaScriptエンジンの仕組み JavaScript プロトタイプ継承の仕組み JavaScriptのジェネレータ関数とイテレータの仕組み JavaScript

    JavaScript入門: 基礎知識をGIFアニメで分かりやすく解説 -総まとめ
  • 分散キューという名の苦しみ - Software Transactional Memo

    TL;DR 分散システムにおいてキューを導入する場合、当にキューが必要なのか再考すべき。そこが地獄の入り口だから。 システムの抽象 コンピュータの世界は、来は0と1の信号の羅列が飛び交う無機質なものである。でも人類は信号だけですべてを語らず、様々な喩えを定義してきた。それはデスクトップ・ウィンドウ・マウスカーソルといったグラフィカルな表現に留まらず、パケットやカプセル化といった用語にロック・キュー・リスト・木などのアルゴリズムやデータ構造の世界にも自然に溶け込んでいる。これらはすべて人間の理解を助けるための喩え話に過ぎず、この喩えこそが人間のより直感的な理解をもたらす一方で、発想の制約を生み出してきた。 人間が大きなシステムを作るときも何らかの喩えを用いてシステム全体を整理する。アーキテクチャの「ポンチ絵」を描いて情報共有をするのは企業に勤めていれば経験した人も多いだろう。パワーポイン

    分散キューという名の苦しみ - Software Transactional Memo
  • レガシーおじさん、SPAを始めてみた。そして限界を知る

    はじめに 最近、Webの記事を見てるとReactVue.jsばかりが上がっていてJSPやERBの話をしてる人は誰もいません。jQueryの記事ももちろん見ない。 つまり、Webだけ見る限りではほとんどの人がSPAを使ってるように見えます。 私はWeb界隈には居るもののどちらかというとバックエンド寄り、もっというとそもそもWebとか関係ない領域を見る事が多いので、ちょっとキャッチアップを兼ねていくつかの個人プロダクトにVue.jsを採用してみました。 jQueryくらいで頭が止まってたので。サーバサイドもマイクロサービスでAPI化が進んでるのでフロントもそれに合った技術を選ばないとですしね。 というわけで、今回はその中で得た知見というか、従来型のサーバサイドでのWeb開発をしていた人の視点でVue.jsをキャッチアップする流れで書いていきたいと思います。 まあ最終的な結論は正直「これすごく

    レガシーおじさん、SPAを始めてみた。そして限界を知る
  • Dockerで開発環境構築を10倍楽にしたはなし - KAYAC Engineers' Blog

    Lobi事業部 サービス基盤チームの長田です。 最近プロジェクト内で使用する開発環境にDockerを利用するようになったので、その紹介をします。 Dockerにしたってどういうこと? 公開済みのWebサービスに変更を加えて動作確認をする場合、番環境でそれを行うわけにはいきません。 ほとんどの場合はローカルマシンでWebサービスの全体または一部のコピーを動かして動作確認を行うことでしょう。 その後ステージング環境などの他の開発メンバーも触ることができる環境で動作確認やQAを行い、 問題がなければ晴れて番環境に反映、という流れが一般的かと思います。 この「ローカルマシンでWebサービスのコピーを動かす」部分にDockerを利用している、ということです。 Dockerにしてどうなった? Before 開発環境構築に1〜2日かかっていた After 開発環境構築がランチに行っている間に終わるよ

    Dockerで開発環境構築を10倍楽にしたはなし - KAYAC Engineers' Blog
  • VSCodeとDockerで簡単に開発環境を構築&共有する方法 -

    もじゃ(@s10akir)です。paizaラーニングでプログラミング学習動画制作のアルバイトをしている専門学生です。 以前こんな記事を書かせていただきました。 paiza.hatenablog.com 今回は、VSCodeDockerを使って簡単に開発環境を構築する方法について書いてみたいと思います。 code.visualstudio.com ちなみに前回はプレビューリリースされた「Remote Development with VSCode」と「PaizaCloud」を使って、面倒な環境構築なしで快適に開発しようぜという記事だったのですが、しばらくして「Remote Development with VSCode」が正式版のVSCodeでも使えるようになりましたね!わざわざInsider版のVSCodeを入れなくてもよくなりましたね。 前提の環境について この記事の内容が試せるのは

    VSCodeとDockerで簡単に開発環境を構築&共有する方法 -
  • Dockerでサクッと使い捨ての開発環境を用意する | DevelopersIO

    Dockerfileなどでアプリケーションのみを入れたコンテナとは違う使い方をした、「作業用コンテナ」を作ってみました。 Dockerで使い捨ての開発環境を構築します。 もこです。 「各種アプリケーションのバージョン管理が面倒」 「Dockerfileにするほどでもないけどコンテナの中で実行したい」 などなど、作業マシンを汚したくないときなど結構あると思います。 Dockerfileなどでアプリケーションのみを入れたコンテナとは違う使い方をした、「作業用コンテナ」を作ってみました。 ベースのコンテナを作る まずは最新のUbuntuのコンテナの中に入ります docker run --name="dev_container" -it ubuntu:latest コンテナに入ったらパッケージを更新し、開発環境などに必要なパッケージ類をインストールしていきます。 apt update -y apt

    Dockerでサクッと使い捨ての開発環境を用意する | DevelopersIO
  • DockerとRemote Containersでの開発環境が最高過ぎる - Sweet Escape

    この投稿がきっかけでソフトウェアデザインに寄稿しています。この投稿の加筆修正ですが、自分のパート以外にもVS Code全般の特集となってますので興味あるかたはぜひそちらも! ソフトウェアデザイン 2021年6月号 作者:tsutsu,吉岩 正樹,中村 充志,西谷 圭介,erukiti(佐々木 俊介),結城 洋志,上田 隆一,八田 昌三,サリチル酸,結城 浩,山川 正美,大串 肇,松 直人,清水 洋治,広田 望,松田 佳希,田中 宗,中島 明日香,くつなりょうすけ,高橋 永成,金谷 拓哉,佐藤 雄飛,梶原 直人,髙濱 暢明,星川 真麻,八木澤 健人,けんちょん(大槻 兼資),職業「戸倉彩」,森若 和雄,大隈 峻太郎,小野 輝也,河野 哲治,古川 菜摘,石井 将直,杉山 貴章,Software Design編集部技術評論社Amazon はじめに Remote Containers Docke

    DockerとRemote Containersでの開発環境が最高過ぎる - Sweet Escape
  • オンラインスキルアップ課題 · チームラボオンラインスキルアップ課題

    チームラボオンラインスキルアップ課題 このサイトはチームラボ オンラインスキルアップ課題で使用する資料をまとめたサイトです。 この資料の想定対象読者は、授業などである程度プログラミングに触れたことはあるが、Webサイトの作り方は分からないという方です。 内容は以下の通りとなっています。 STEP1 Webプログラミングをしてみよう Web上でのデータの流れ、データの送受信・保存の原理・方法、Webページ表示のための言語について学ぶ STEP2 Instagramもどきを作ろう セッションによるログイン機能、フレームワークによる中規模サイトの作成方法、データベースの設計方法について学ぶ 最終課題:Instagramもどきサイトの作成 また、想定OSはMac/Windowsとなっています。 その他のOSの方はダウンロードリンクやフォルダ構成などが一部異なります。 ブラウザはGoogleChro

  • なぜ我々は頑なにforを避けるのか - Qiita

    動機 前回の記事を投稿したことを某SNSで通知したところ、そのSNSでこんなコメントをいただいた。転記する許可を取ったわけでは無いので私なりに要約させていただくと、 なぜそんなトリッキーな書き方をしてまでforを使うのを避けるのか そんな書き方をして可読性を下げるくらいなら素直にforを使う方が良い ということだと理解している。 なるほど、一理ありそうだ。しかし一方で、前回貼ったStackOverflowのQ&Aはなかなかの人気記事(質問に1243ポイント、回答に最大で1559ポイント)なので「多少トリッキーなことをしてでもforを書きたくない!!」という意見をもつプログラマも一定以上いるのだろう。当然私もその1人だ。 ということで、この記事で「なぜそこまで意固地になってまでforを書きたくないのか」を説明することにする。 尚、今回は前回の記事つながりで言語はJavaScriptを使うが、

    なぜ我々は頑なにforを避けるのか - Qiita