タグ

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

  • PHP開発者が心得ておくべき10の鉄則 - Qiita

    PHPだけに限った話ではないが、プログラミングを行うに当たって、心得て、準備しておくと失敗が劇的に減る事柄をまとめてある良い記事を見つけたので、私なりの解釈で意訳しつつ、経験則を踏まえてあらためてまとめてみた。 オリジナル記事: Top 10 PHP Tips for Developers どれも基礎的なことで、長くプログラムやっていると「何を今更…」的な事も多いのだが、逆にプログラミングに応用が利くようになってくるとおざなりにしがちな点もある。 1. OOPで行こう! OOPとはオブジェクト指向プログラミング(Object Oriented Programming)のことで、原文では「開発する際はオブジェクト指向プログラミングを活用しないと不利になる」と云っている。 オブジェクト指向型プログラミングの説明をすると長くなってしまうので、ここでは詳しくは触れないが、簡潔に言えば、OOPは「工

    PHP開発者が心得ておくべき10の鉄則 - Qiita
  • まだ .gitconfig に core.excludesfile を設定しているの? - Qiita

    をして、 ${HOME}/.gitignore_global を置くと。 ダメなんだよ・・・・・・!そういうのが実にダメ・・・・!せっかくgitconfigをスカッとしようって時に・・・・その横着は傷ましすぎる・・・・・・・・! man gitignore を見ると Patterns which a user wants Git to ignore in all situations (e.g., backup or temporary files generated by the user’s editor of choice) generally go into a file specified by core.excludesFile in the user’s ~/.gitconfig. Its default value is \$XDG_CONFIG_HOME/git/igno

    まだ .gitconfig に core.excludesfile を設定しているの? - Qiita
  • --skip-worktreeでGitの管理から除外したファイルを変更する方法 - Qiita

    git update-index --skip-worktreeというコマンドをご存知でしょうか? これはGitで既に管理されているファイルをローカルで無視する方法です。 例えば、『設定ファイルなど既にGitで管理されているファイルをローカルで少しだけ修正したい(だけど、修正はあくまでローカルで利用するときだけ)』などの場合に便利なコマンドです。 詳しくは以下の記事を参考にしてください。 Gitで既に管理されているファイルをローカルで無視する方法 しかし、この無視していたファイルが原因でリポジトリの修正を取り込めない場合があります。 今回はその対処方法について説明します。 今回の例 以下のような前提をもとに説明をしていきます。 config/application.rbというファイルをローカルで利用する際に少しだけ修正していた git update-index --skip-worktre

    --skip-worktreeでGitの管理から除外したファイルを変更する方法 - Qiita
  • 正規表現のフラグ - Qiita

    フラグって何? 正規表現では /(pattern)/ と記述するが、 パターンの後に以下のようにフラグを設定することができる。 /(pattern)/(flag) フラグの種類 ※PHPを使って各フラグの種類について例を取り上げます。 g 最初の1個だけでなく、文字列の最後まで検索を繰り返す。グローバルマッチとも呼ばれる。 例) preg_replace('/aa/', 'cc', 'aabbccaabbcc') → ccbbccaabbcc このやり方だと一番初めのaaがccに置換される preg_replace('/aa/g', 'cc', 'aabbccaabbcc') → ccbbccccbbcc gフラグを使うと文字列の全てのaaがccに置換される 大文字小文字を区別せずにマッチうる 例) preg_match('/XYZ/', 'xYz') → false 大文字小文字を区別す

    正規表現のフラグ - Qiita
  • 日本語で絵文字入力するための IME 追加辞書を公開しました - Qiita

    概要 - Overview この辞書を Google日本語入力ATOKMicrosoft IME などに導入することで、 GitHub, Slack, Qiita のようにコロン : をトリガーとして IME でも絵文字を入力することができるようになります。 「GitHub, Slack, Qiita 以外のアプリケーションでも GitHub, Slack, Qiita のように絵文字を入力したい」 という要望に応えるための IME 追加辞書です。 ちなみに GitHub や Qiita は英語絵文字を探す必要がありますが、この辞書を利用することで GitHub や Qiita でも Slack のように日語で絵文字を入力することができるようになります。 GitHub に MIT License で公開しており、現在は 8264 ペアの絵文字とその読みが収録されています。 👇辞書

    日本語で絵文字入力するための IME 追加辞書を公開しました - Qiita
  • 必要だと気付いてもいなかったフロントエンド用リポジトリ7選 - Qiita

    より良いものをより早く作るのに役立つ、あまり知られていないリポジトリ。 Photo by Juan Rumimpunu on Unsplash はじめに 私たちは、汎用ツールやリソースが数回タップするだけで手に入る時代に生きています。しかも幸いなことに、そのほとんどが無料です。 新しいツールやより簡単な方法が見つかり、面倒で複雑なタスクを実行できれば、誰にとっても、特に開発者には嬉しいことです。 でも、より良く賢い方法があり、予想外の方法で時間を節約できることを知らない場合もあります。 この2年間で見つけたGitHubの素晴らしいリソースは、私をかなり助けてくれました。これらのうちいくつかは、その必要性さえ知りませんでした。 そこで、あなたもおそらく必要になるGitHubリポジトリのリストを作りました。 1. 33 JS concepts ソース 私はプログラミングをJavaで始め、その後

    必要だと気付いてもいなかったフロントエンド用リポジトリ7選 - Qiita
  • 「ASCIIをUTF-8にして」それが『できない』ことを理解してもらえなかった話 - Qiita

    物語の始まり 事の発端は納品後。 先方からメッセージが届きました。 クライアント様「このファイルの文字コードがShift_JISになっておりますので、UTF-8で再納品をお願いいたします。」 拙者(あれ…UTF-8にしてたと思うんだけどな) 拙者「確認いたします。」 文字コードを確認する 案件はいわゆる更新案件で、今回の納品時に言われていたのは、「文字コードがUTF-8ではないものは変換して納品してくれ」ということ。 そして、ご指摘いただいたのは、今回の更新案件で中身はいじらなかったJavaScriptファイル。 来ならば納品するファイルではないのですが、文字コード変換という要件があったため、納品ファイルとして加えられたものでした。 一括で文字コードを変えたので作業漏れかなぁと思っていました。 ファイルの中身は記事用にかなり適当につくったものですが、まあだいたいこんな感じです。

    「ASCIIをUTF-8にして」それが『できない』ことを理解してもらえなかった話 - Qiita
  • ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita

    NTT データ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 今回はソートについて記します。 0. はじめに データ構造とアルゴリズムを学ぶと一番最初に「線形探索」や「ソート」が出て来ます。これらのテーマは応用情報技術者試験などでも頻出のテーマであり、アルゴリズムの Hello World とも呼ぶべきものです。 特にソートは、 計算量の改善 ($O(n^2)$ から $O(n\log{n})$ へ) 分割統治法 ヒープ、バケットなどのデータ構造 乱択アルゴリズムの思想 といった様々なアルゴリズム技法を学ぶことができるため、大学の授業でも、アルゴリズム関連の入門書籍でも、何種類ものソートアルゴリズムが詳細に解説される傾向にあります。記事でも、様々なソートアルゴリズムを一通り解説してみました。 しかしながら様々な種類のソートを勉強するのもよいが、「ソートの使い方」や

    ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita
  • Google Spreadsheet の googletranslate 関数の代わりに LanguageApp を使うワークシート関数を作ってイケてる翻訳ができるようにする - Qiita

    Google Spreadsheetgoogletranslate 関数の代わりに LanguageApp を使うワークシート関数を作ってイケてる翻訳ができるようにするGoogleAppsScriptGoogleSpreadSheetGoogleTranslate イケてない googletranslate 関数を使いたくない Google Spreadsheet で使えるワークシート関数 googletranslate、便利といえば便利です。でも、翻訳がイケてないと思うんです。 ではどれくらいイケてないかを確認するために https://translate.google.com/ と Google Spreadsheetgoogletranslate 関数で翻訳した結果を比較してみることにします。また、これらの機械翻訳と人力による翻訳も比較してみましょう。 GPL v3 冒頭

    Google Spreadsheet の googletranslate 関数の代わりに LanguageApp を使うワークシート関数を作ってイケてる翻訳ができるようにする - Qiita
  • Go言語+gRPCの解説 [ハンズオン] - Qiita

    はじめに この記事は、海外サイトhttps://tutorialedge.net/golang/go-grpc-beginners-tutorial/ の内容をベースに一部修正を加えたものです。この記事を読み進めることでGoでシンプルなgRPCクライアントとサーバーを構築することができるようになります。 ※gRPC公式より抜粋(また、以下の説明でも一部参考にしています。) gRPCとは? gRPCGoogleによって開発されたRPCフレームワークです。 RPCはRemote Procedure Callの略で、逐語的に訳すと「遠隔手続呼び出し」となります。これはすなわち、「あるプログラムがネットワーク上の異なる場所に配置されたプログラムを呼び出して実行すること」と読み取れます。 公式による定義 サービス定義 多くのRPCシステムと同様に、gRPCはサービスを定義するという考えに基づいてお

    Go言語+gRPCの解説 [ハンズオン] - Qiita
  • Webフロントエンド開発で役立つサービスまとめ - Qiita

    この記事では、Webフロントエンド開発において役に立つと思われるサービスやツールをまとめます。 全般 Can I use 指定した特定の機能が、どのブラウザのどのバージョンで利用可能かを確認するためサービスです。新しいJavaScriptAPICSS3の機能を使ってモダンなWeb開発を行う場合、必須とも言えるくらい利用することになります。 指定した国におけるブラウザのシェア情報をもとにして、特定の機能が何割のユーザーで使用可能かを調べることもできます。 npm / webpack BUNDLE PHOBIA 指定したnpmパッケージのサイズを調べるサービスです。近年のWebではページの表示速度が非常に重要視されており、Webサービスにバンドルするパッケージのサイズも極力小さくすることが求められています。パッケージのサイズを調べる方法は多々ありますが、このツールの場合はパッケージ自体のイ

    Webフロントエンド開発で役立つサービスまとめ - Qiita
  • [フロントエンド] うわっ…Componentの凝集度、低すぎ? - Qiita

    [追記 2021/4/26] Storybookを導入して凝集度を向上させる記事を書きました。 0. はじめに 有名OSSのコミッターから、コピペで動かすマンまで、彼らは等しくプログラマと呼ばれます。10xプログラマという言葉があるように、同じプログラマでもその生産性には天地ほどの開きがあります。 プログラマの生産性は、1968年のSackmanらの研究以来、ソフトウェア工学でも熱い研究テーマの一つですが、未だにプログラマの生産性を測る指標は確立されていません。 一方、広木大地氏は自著「エンジニアリング組織論への招待」で、エンジニアリングを不確実性を削減する行為と定義しました。プログラミング能力を測る重要な尺度として、モジュールの凝集度があります。高い凝集度で設計しコーディングされたモジュールは、見通しがよく、再利用可能で、バグが少ない…つまり不確実性が少ない状態と言えるでしょう。 システ

    [フロントエンド] うわっ…Componentの凝集度、低すぎ? - Qiita
  • `r`コマンドと言えば、統計だよねという全ての人のために - zshデフォルトの`r`コマンドをオフにする方法 - Qiita

    `r`コマンドと言えば、統計だよねという全ての人のために - zshデフォルトの`r`コマンドをオフにする方法ZshR 他のshと比べ、いろいろ素晴らしい機能を提供してくれるzsh先生ですが、実は一つだけお節介挙動をします。 それは、以前に実行したコマンドを入力するというrというコマンドをデフォルトで定義してくれちゃっているということです。 具体的には、 rで最後に実行したコマンドを実行(= !!) r viで最後に実行したviコマンドを実行(= !vi) ということをしてくれます。 でもこれ当に必要ですか?? 最後に実行したコマンド: ↑ → Enter 最後に実行したviコマンド: Ctrl+r → viと入力 → Enter で十分だし、もし、shスクリプトに書くならbashでも動くように!を使った記法を使ったほうがいいように思えます。 そして何より、brew(apt-get, y

    `r`コマンドと言えば、統計だよねという全ての人のために - zshデフォルトの`r`コマンドをオフにする方法 - Qiita
  • はじめてのGoogle Assistant向けアプリ開発 - Qiita

    はじめに 記事は、GoogleアシスタントのInteractive Canvasというフレームワークを使用してみて、 色々覚えることが多くてすぐ忘れそうになるので 記事として残しておこうと記載したものです。 想定は、Google Nest Hubで動作するゲームです。 公式ドキュメントは基全て英語である上に、欲しい情報が全て載っていないこともあったので、実践してみないと分からないことが多くありました。 記事は実践してみたほんの一部の内容ですが、同じように情報少ないと感じている人に役立てれば幸いです。 記事の内容 今回はこちらの公式のサンプルを例に、説明を付加しながら記載していきます。 https://github.com/actions-on-google/actions-builder-canvas-codelab-nodejs CodeLabも用意されていますので、興味ある方は

    はじめてのGoogle Assistant向けアプリ開発 - Qiita
  • 【俺の屍を】クソ正規表現で本番サイトを吹っ飛ばした話【超えていけ】 - Qiita

    こちらはLivesense アドベントカレンダー 2020 23日目の記事です。 こんにちは。転職会議事業部でエンジニアをやっている落合です。 同僚のエンジニアが素晴らしい記事を投稿しているのを横目に、日のコンテンツは転職会議の番サイトを一時的にダウンさせた経緯を共有・懺悔する謝罪広告となっております。 え?お前が書くべきアドベントカレンダーはここじゃない? そういうことを言うのはやめて差し上げろ。 背景 話を始める前に、今回の惨事の舞台になるシステムについて解説したいと思います。 問題が発生したシステムは、転職会議において企業に対する口コミを掲載している企業情報ページ です。 ご存知の方も多いと思いますが、転職会議は企業に関する様々な口コミを集めて提供しているメディアです。 求職者向けの求人ページなどもあるのですが、トラフィックの大部分は各企業の年収・財務情報・面接情報などが公開され

    【俺の屍を】クソ正規表現で本番サイトを吹っ飛ばした話【超えていけ】 - Qiita
  • Phaser 3 + Webpack + Typescript でゲームを作る - Qiita

    概要 Phaser 3を使ってHTML5ゲームを開発するための環境構築 Typescriptで処理を書き,Webpackトランスパイル ESLint + Prettier によるコード整形の導入 各種ツールの導入 フレームワークやパッケージなど,環境構築に必要なものを導入していきます. Node.jsの導入 Node.jsというサーバサイドのJavaScirpt実行環境をインストールします. Node.jsのホームページからインストーラーをダウンロードするか,MacならHomebrewでもインストールできます.

    Phaser 3 + Webpack + Typescript でゲームを作る - Qiita
  • 今から始めるReact入門 〜 React の基本 - Qiita

    目次 今から始めるReact入門 〜 React の基 ←★ここ 今から始めるReact入門 〜 React Router 編 今から始めるReact入門 〜 flux編 今から始めるReact入門 〜 Redux 編: immutability とは 今から始めるReact入門 〜 Redux 編: Redux 単体で状態管理をしっかり理解する 今から始めるReact入門 〜 Redux 編: Redux アプリケーションを作成する 今から始めるReact入門 〜 Mobx 編 React をはじめるにあたって 普段バックエンドを触っている人間として、フロントエンド側の知識も触れておこうということで個人的なReact の勉強記を残しておきたいと思います。 すでにReact の記事は多く出回っていますが、ここでは最近のReact 及びReact Router, Redux, その他Red

    今から始めるReact入門 〜 React の基本 - Qiita
  • 桃太郎電鉄の「いけるかな」を実現する高速なアルゴリズムの実装と考察 - Qiita

    この記事は「データ構造とアルゴリズム Advent Calendar 2020」16日目の記事です。 15日目の記事はyurahunaさんの「木分解上の動的計画法」で、 17日目の記事はtsukasa__diaryさんの「Lawler の K-Best 列挙アルゴリズム」です。 この記事内で使用しているプログラムやそのテストプログラムは全て以下のGitHubリポジトリで閲覧可能です。プログラムの詳細に興味がある方はこちらをご覧ください(ついでにStarを押していってくれると喜びます🙂)。 Github: ashiba/Imprementation_of_IKERUKANA: Momotaro Dentetsu is a game. 変更履歴 2020/12/21に「最終的に貧乏神が付かない移動方法 ~貧乏神持ちの場合~」, 「最終的に貧乏神が付かない移動方法 ~貧乏神がついていない場合~

    桃太郎電鉄の「いけるかな」を実現する高速なアルゴリズムの実装と考察 - Qiita
  • 開発環境にデプロイしたつもりが本番環境にデプロイされちゃった話 - Qiita

    皆さんは予期せぬ事態が起きた時どうしますか? 特に、予期せずやらかしてしまった時は冷静さを欠いてしまい、あらぬ方向へ進んでしまう人は多いと思います。 大事なのは事が起きしまった後に如何に対処できる事後処理能力と振り返り、そもそも事件が起こってしまわないようにするための事前対策です。 今回は私が参加していたとあるプロジェクトにて、私の事前調査が不十分だったせいで起きてしまった話をご紹介いたします。今回の事故が少しでも皆さんの役に立てればと思います。 開発背景 私が関わっているとあるプロジェクトの一部はFirebaseにて運用されています。特にフロントエンドはFirebase Hostingで配信されており、デプロイはGitHub上で特定のリリースタグを切ると自動でリリースされます。 Firebase Hostingはとても簡単にデプロイできます。どのくらい簡単かと言うと、firebase d

    開発環境にデプロイしたつもりが本番環境にデプロイされちゃった話 - Qiita
  • async/await は Promise を置き換えることは出来ると思う その 2 - Qiita

    前の記事:async/await は Promise を置き換えることは出来ると思う 前提 「Promise を使ったコード」の定義は hoge().then(x => { ... }).catch(x => { ... }).finally(...); のようにメソッドチェーンを使って書かれた非同期処理であって、Promise という文字列がコード内に登場したらダメという意味ではないです。おそらく、この記事を書く発端となった記事は Promise クラスが登場するコードになると思うので、この先に書いてあるコードのほとんどは Promise を使ったコードになると思います。言葉って難しい…。 というわけで頭の体操がてら async/await で書けないと言われた処理を async/await 使って書いてみようと思います。中には無理やり感あるのも出てくる可能性もありますが、頭の体操という

    async/await は Promise を置き換えることは出来ると思う その 2 - Qiita