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

  • 「正直9年経ったいまでもfor文ググってる」 - Qiita

    「正直9年経ったいまでもfor文ググってる」 という議論記事があった。正直なところ私もググる方の人だ。私の感想: ポンとテキストエディタだけ渡された時に書けるか自信ないぞ...IDEがあればまあ大丈夫かなあ。 JavaScriptだけじゃない。言語色々扱うしという言い訳。正規表現とか毎度調べる。 だから世の中にチートシートというものがあるのだ。お気に入りチートシート多数。 実戦でどうしているか?結局周りのソースを見て馴染む書き方にしていますよ多分。 暗記するかしないかは受験勉強みたいなもので、コーディング面接に受かるなら必要。暗記そのものには意味はないとは思う。 競技プログラミングが使えないとかいう論もあったな。 ググり力も大事。 でも「最低限」もできないのはやはり恥ずかしい気持ちはある。 なんかこれ英語できるできないと似てるな。英語なんてGoogle翻訳、DeepL翻訳あればいいけど、実

    「正直9年経ったいまでもfor文ググってる」 - Qiita
    Amigomr
    Amigomr 2021/03/25
    へたに他の言語からの類推で書くと、バグを生むからね。Java屋がPHP書いて、日付の書式指定をミスってバグらせるの、数ヶ月に何人も見て「ちゃんとドキュメント見ろ」と怒ったことある。
  • AWS CDKとTerraformどちらを使うのが良いのか? - Qiita

    今日のお題 結局、CDKとTerraformどっちがいいんだろう、という宗教論争 それぞれをある程度触ってきた上での個人的見解を今後の自分のためにまとめます。 長くダラダラした記事なると思いますがご容赦を。 先に結論 CDK、非常にいいんだけれど、ちょっと辛いかも。 ずっと運用することを考えるとTerraformかな。 (2022/07/22追記) ・・・と思っていたが、使い方によってはCDKの方が良さそうという人になってきました。 その内容は こちら そもそも、CDKとかTerraformってなんだ? 一言で言えば、Infrastructure as Code(IaC)のツールです。 AWSに限らず、GCPやAzureなど様々なクラウドサービスがありますが、これらのクラウドサービス上でコードによりインフラ管理を行う仕組みがIaCです。 これにより、コードさえあれば、どのアカウントにも同じ

    AWS CDKとTerraformどちらを使うのが良いのか? - Qiita
    Amigomr
    Amigomr 2021/03/22
    CDKはバージョンアップにどう追従するかが課題だなあ(あとGoはやくきて)。Terraformはtfstateが辛いのと、言うほど情報豊富かな?と思う。そこでSAMですよ!(ぇ
  • 【PHP8.1】PHPで簡単に非同期処理を書けるようになる - Qiita

    PHPは長きにわたり同期的、すなわち、あらゆる処理を上から順に実行していくというスタイルを取ってきました。 しかしたとえば、複数のURLからデータを取ってきて結果をまとめたいといった場合、時間のかかるHTTPリクエストは同時に投げたいですよね。 この用途にはGuzzleというライブラリが存在し、これを使えば同時にリクエストを投げられます。 しかし、ではHTTPアクセスとDBアクセスを同時にやりたい場合は? 時間のかかる計算を裏でやりたい場合は? などと考え始めると、こういった個別のライブラリでは対処しきれません。 ということで汎用的な非同期処理をPHPで書けるようにするRFCが提出されました。 PHP RFC: Fibers Introduction 人類史上ほぼ全ての期間において、人々はPHPを同期的なコードとしてのみ書いてきました。 同期的に実行されるコードのみが存在し、そしてそれを同

    【PHP8.1】PHPで簡単に非同期処理を書けるようになる - Qiita
    Amigomr
    Amigomr 2021/03/21
    小数点以下第1位のバージョンアップで大きい機能をぶちこむ精神だけは変わってないんだな...
  • こんなコードは嫌だ、古い書き方のコード駆逐したい(とりあえず9つ) - Qiita

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

    こんなコードは嫌だ、古い書き方のコード駆逐したい(とりあえず9つ) - Qiita
    Amigomr
    Amigomr 2021/02/21
    言わんとすることはわかるし、同意もするけど、まぁ、言い方の問題だよね。「老害」ねぇ... 自分もいい歳になってきて、年下からこう思われてるんかなとか思うと、なんだか切なくなった。
  • Webエンジニア(30歳)だけど4年かけて工学学士を取った - Qiita

    0. はじめに Bizer株式会社でフルスタックエンジニアとして働きながら、国立大学法人電気通信大学の先端工学基礎課程(通称 K課程)という社会人向けの学士課程に在籍しています。 この春(2021年3月)に卒業予定のため、いちソフトウェアエンジニアから見た大学教育学歴に対する考えをまとめておきます。 1. 対象読者 理系大学のカリキュラムがソフトウェアエンジニアという仕事にどう活きるか分からない方 就業しながら学士を取ろうとしている方 ソフトウェアエンジニア学歴の関係性を不透明に感じている方 2. 現職エンジニアが工学学士を取る理由 18歳で最初の大学を中退しエンジニアとして働き始めたため、途中の放浪期間などを差し引き、ソフトウェアエンジニアとしてのキャリアは現在10年程です。つまり大学入学時点では6年程のキャリアがあり、それなりに幸せなエンジニアライフを送っていました。 ではなぜ既に

    Webエンジニア(30歳)だけど4年かけて工学学士を取った - Qiita
    Amigomr
    Amigomr 2021/02/10
    休日は疲れ果ててぐったりしている自分には無理だな...
  • ぐるぐるSQLは止めてくださいという話 - Qiita

    1. はじめに 仕事の都合で DB/SQL の性能問題を調査する機会が少なくありませんが(決してメインの仕事ではないですが)、その中でよく出くわす問題の1つに「ぐるぐるSQL」(もしくは「ぐるぐる系」)といわれる、ループで大量の SQL 文を呼び出しているものがあります。 感覚ですが、私の周りでは OLTP 系システムの DB/SQL の性能問題の原因の割合は以下のように感じています。 30%:ぐるぐる SQL 20%:SQL 文の書き方が不適切 15%:索引がない or 不適切 15%:パーズが遅い 10%:データモデルがおかしい 10%:その他 (大昔は2番目 / 3番目がほとんどだったのですが、最近はなぜがぐるぐる SQL が多い…) ぐるぐる SQL の実装では、ネットワーク通信や、アプリ側のクエリ生成 / 結果データ構築、DB 側のクエリ受信 / 結果送信といった、処理の質的で

    ぐるぐるSQLは止めてくださいという話 - Qiita
    Amigomr
    Amigomr 2021/01/18
    ミック先生の『SQL実践入門』あたりを読みなはれ、ということですね
  • 新卒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
    Amigomr
    Amigomr 2020/12/22
    こういうのを見るたびに、英雄とかメシアが現れるのを待っている開発体制ってどうなのさと思うわけですが...
  • tsconfigのmoduleとtargetには何を設定すればいいか - TypeScript - Qiita

    TypeScriptの設定ファイルを雰囲気でコピらないための記事 TL;DR moduleはどのモジュールパターンで出力するかを指定する Node.jsでの利用想定ならcommonjs ブラウザ側での利用ならumd targetはどの動作環境向けにトランスパイルするかを指定する 利用環境が想定できないならes3やes5 下位互換性のあるコードへの変換をBabelで行うならesnext module とは JavaScriptにはいくつかのモジュールパターン(CommonJSやAMD、ECMAScriptなど)がある。TypeScriptJavaScriptに変換する際、どのモジュールパターンにするかをmoduleに指定する必要がある。 moduleには'none', 'commonjs', 'amd', 'system', 'umd', 'es6', 'es2015', 'esnext'

    tsconfigのmoduleとtargetには何を設定すればいいか - TypeScript - Qiita
    Amigomr
    Amigomr 2020/12/05
  • TypeScript + Node.js プロジェクトのはじめかた2020 - Qiita

    TL;DR https://github.com/notakaos/typescript-node-base にアクセスして「Use this template」をクリックすると、以下の手順をベースとしたリポジトリが新規作成されます。 この記事の趣旨 以下の設定を適用した TypeScript + Node.js のプロジェクトを作成します。 項目 パッケージ

    TypeScript + Node.js プロジェクトのはじめかた2020 - Qiita
    Amigomr
    Amigomr 2020/11/30
  • 意外と知らないVSCode上でGoを爆速開発するためのTips5選 - Qiita

    はじめに 最近イケイケなGo! 今回はVSCodeGoを爆速開発するためのTipsを5つ(+おまけ1つ)紹介したいと思います。 自分もつい最近これらを知って、めっちゃ活用して開発効率を上げています! 良かったら参考にしてください。 (良いと思ったらLGTM頂けると嬉しいです😇) Fill Struct 空の構造体にフィールドをセットしてくれてとても便利です。 よく使ってます。 使い方 空の構造体にカーソルが当たった状態で、Command Palette(F1 or Ctrl + Shift + P)でGo: Fill structと入力。 例 package main type person struct { name string age int job string } func main() { p := person{} }

    意外と知らないVSCode上でGoを爆速開発するためのTips5選 - Qiita
  • Google『reCAPTCHA』を突破!『2Captcha』でブラウザ操作の完全自動化に挑む - Qiita

    目次 はじめに 2Captchaとは 2Captchaの使用準備 Python+Selenium+2Captchaで『reCAPTCHAv2』を突破 さいごに 参考 はじめに スクレイピングやブラウザ操作の自動化タスクにおける一番の難所は各種キャプチャの突破だと思います。そもそもキャプチャ機能はロボット操作されないために設置するものなので,それを突破しようとする時点でどうなのという気はしますが,それでもなんとかしたいと思うことがあります。そんなときの解決方法として「2Captcha」というサービスがあります。 最近このサービスを知り利用してみたところ,あまりに簡単にキャプチャ突破できたので,ここで紹介しようと思います。 ※ ご利用は自己責任でお願いします。くれぐれも悪用しないように。 2Captchaとは ロシアの会社が提供するキャプチャ機能を突破するためのサービスです。 2Captcha

    Google『reCAPTCHA』を突破!『2Captcha』でブラウザ操作の完全自動化に挑む - Qiita
    Amigomr
    Amigomr 2020/11/10
    あれっ、数年前にも同じようなのが話題にならなかったっけ?
  • Template error: Fn::Select cannot select nonexistent value at index 1 - Qiita

    Resources: PrivateSubnet2: Type: AWS::EC2::Subnet Properties: CidrBlock: 10.0.2.0/24 VpcId: !Ref CFnVPC AvailabilityZone: !Select [ 1, !GetAZs ] MapPublicIpOnLaunch: true Tags: - Key: Name Value: PrivateSubnet2 原因 Fn::GetAZsはアカウントのデフォルトサブネットのAZを配列で返却します。 私のアカウントではデフォルトサブネットのAZを1つしか登録していませんでした。 問題のCloudFormationテンプレートで、Fn::GetAZsで取得したAZ配列の2番目を参照しますが、存在しないためエラーとなりました。 対処方法 デフォルトサブネットを作成し、AZを増やします。 東

    Template error: Fn::Select cannot select nonexistent value at index 1 - Qiita
    Amigomr
    Amigomr 2020/11/04
    AWS公式のHands-onのテンプレートでスタックを作ろうとしたら、このエラーでハマった。デフォルトサブネットを追加して解決。
  • 【まったく新しい最高のブラウザ】Braveブラウザでインターネットの仕組みとありかたを変えよう。 - Qiita

    はじめに これはただのプラグインではありません。Louis Armstrong によって歌われた最も有名な二つの単語、Hello, Dolly に要約された同一世代のすべての人々の希望と情熱を象徴するものです。 これはただの記事ではありません。Robert E. Kahnによって歌われた開かれたインターネットへのすべての人々の希望と情熱を象徴するものです。 概要 この記事ではBraveブラウザについて説明します。Braveブラウザを使えば広告なしでYoutubeを閲覧できたり、サイトを見るとお金がもらえたりします。また、Adsenseに代わりWebサイトやTwitterを収益化できるブラウザでもあります。しかしそれだけではなく 1. (Googleの無料サービスに定義された)インターネットの仕組みを変える 2. コンテンツ製作者に適切に報いる ことを目的とする従来とは全く異なるパラダイムか

    【まったく新しい最高のブラウザ】Braveブラウザでインターネットの仕組みとありかたを変えよう。 - Qiita
    Amigomr
    Amigomr 2020/11/02
    Braveといえば、以前疑惑を持たれたことあったよねと。アイクがMozillaを退社した理由もそんなにカッコイイものではないよw https://gigazine.net/news/20200608-brave-insert-code/
  • 【Golang】Golangのinterfaceで知っておくとお得なTips - Qiita

    概要 去年の8月に社会人エンジニアになり、今年の2月までAPIサーバーの開発をRuby on Railsで行なっていた新卒Rubyistです。 3月にサーバーサイドを全てGolangで行う会社に転職しました。今までRailsでの業務が多かったため、interface{}という概念がどうしても身につきませんでしたが、ある程度業務に慣れ、戦い続けて学んだことをまとめようと思いました。 Golangのinterfaceについては知見は多くあるのですが、今年はアウトプットを大事にしていきたいという目標から、記事にまとめました。 下に読む前に Golangのインタフェースは型の1つです。 string や int64 が関数を持っているように、インタフェースで型を宣言してその型に関数を持たせることができます。 構造体がインタフェースで宣言されているGetRadius関数を持つと、この構造体の型はCi

    【Golang】Golangのinterfaceで知っておくとお得なTips - Qiita
    Amigomr
    Amigomr 2020/11/01
  • User-Agent が使えなくなる世界線で何を考えたら良いだろう - Qiita

    ※ この記事は 2021/03 時点での情報になり、今後大きく変動する可能性があります。 User-Agent が Google Chrome で凍結・非推奨になる という話題が年明け以降一部の界隈で盛り上がっています。 また、Chrome に限らず、 Firefox, Safari など Chromium 以外のベンダでも User-Agent(以下 UA) の凍結・非推奨が予想されており、近い将来 UA を使わずにデバイスの判定をする世界線は避けて通れなくなりそうです。 UA の代替となる指標 Google は UA を凍結・非推奨とする代わりに User-Agent Client Hints (以下 UA-CH) を新たなデバイス等の判定の指標として提案しています。 ※ UA-CH は W3C の Draft Community なので、今後仕様が変わる可能性があります。 例えば C

    User-Agent が使えなくなる世界線で何を考えたら良いだろう - Qiita
    Amigomr
    Amigomr 2020/10/28
  • composer2.xでLaravelが動かなくなったら - Qiita

    第1の問題(Laravelのパッチバージョンが古い問題) composer2.xがリリースされ、次第にcomposerの2系がビルドの際に落ちてくるようになりました。 その際、以下のようなエラーが出てきたかもしれません。 > @php artisan package:discover --ansi In PackageManifest.php line 122: Undefined index: name 解決するには Laravelのパッチバージョンを上げれば解決します。 いくつかのpull requestが各バージョンに対して行われています https://github.com/laravel/framework/pull/32310 なぜこうなったのか これはcomposer2.xでvendor/composer/installed.jsonの形式が少し変わったせいです。 今まではp

    composer2.xでLaravelが動かなくなったら - Qiita
    Amigomr
    Amigomr 2020/10/28
  • 【いまさらですが】package.jsonのdependenciesとdevDependencies - Qiita

    package.jsonのdependenciesとdevDependenciesの使い分けについて、いまさらですがまとめます。 dependenciesとdevDependenciesの違い 例えば、sampleという名前のパッケージを開発しているとします。 dependenciesにはrequest、devDependenciesにはmochaが書かれているとします。 { "name": "sample", "dependencies": { "request": "^2.81.0" }, "devDependencies": { "mocha": "^3.4.2" } } //このほかの要素は省略します 開発者がpackage.jsonがあるディレクトリでnpm installを行うと、dependenciesに書かれているパッケージもdevDependenciesに書かれているパッ

    【いまさらですが】package.jsonのdependenciesとdevDependencies - Qiita
    Amigomr
    Amigomr 2020/10/22
  • Go言語のdeferを正しく理解する | How defer in Golang works - Qiita

    A Tour of Goより A defer statement defers the execution of a function until the surrounding function returns. The deferred call's arguments are evaluated immediately, but the function call is not executed until the surrounding function returns. defer文は、上位ブロックの関数がreturnするまで関数の実行を遅延させる。 遅延実行される関数の引数は即時評価されるが、関数の実行は上位ブロックの関数がreturnするまで実行されない。 出典: A Tour of Go 試してみる なにはともあれコードを書く。 遅延関数の引数の即時評価について まずは上記

    Go言語のdeferを正しく理解する | How defer in Golang works - Qiita
    Amigomr
    Amigomr 2020/10/22
  • 【初中級編】Go言語を始める方のための落とし穴、問題の解決方法やよくある間違い - Qiita

    こちらの記事は、Kyle Quest氏により公開された『50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs』の和訳です。 記事は原著者から許可を得た上で記事を公開しています。 初心者(Total Beginner)向けの和訳は 【初級編】Go言語を始める方のための落とし穴、問題の解決方法やよくある間違い があります。記事は初中級者(Intermediate Beginner)向けの和訳です。 初中級者向け HTTPレスポンスボディのクローズ HTTPコネクションのクローズ JSONエンコーダーが追加する改行 JSONパッケージによるキーと文字列値の特別なHTML文字のエスケープ JSON数値のインターフェース型へのデコード 16進数や非UTF8のエスケープシーケンスがJSON文字列値として使え

    【初中級編】Go言語を始める方のための落とし穴、問題の解決方法やよくある間違い - Qiita
    Amigomr
    Amigomr 2020/10/22
  • ありがとうPrestissimo、そしてさようなら - Qiita

    Composer2.0は並列ダウンロードができる Prestissimoといえば、Composerにほぼ必須といってよいくらいの高速化ツールです。 しかしComposer2.0でついに並列ダウンロードが実装され、お別れの時がやってきました。 Prestissimo制作者のhirakさんが作られたプルリクエストは4年越しに実質的にマージされてクローズされることになりました。おめでとうございます。 Composer2.0にアップデートする前にPrestissimoは消しておこう PrestissimoはComposer2.0では動きません。そのため、Composer2.0へバージョンアップする前に忘れずに消しておく必要があります。現在Composer2.0はRCリリースですが、2020年10月末までに正式リリース予定となっています。 追記:2020年10月24日に正式リリースされました。 2.

    ありがとうPrestissimo、そしてさようなら - Qiita
    Amigomr
    Amigomr 2020/10/17
    "現在Composer2.0はRCリリースですが、2020年10月末までに正式リリース予定となっています。"