プログラミングに関するbuenaarbolのブックマーク (146)

  • Pythonによるデザインパターン5原則 - Qiita

    参考 @kidach1 さんの投稿をPythonに書き換えてるだけです。 @kidach1 さん、いつもありがとうございます。 https://qiita.com/kidach1/items/4b63de9ad5a97726c50c 概要 改めて基を学ぶ。 参考「Rubyによるデザインパターン第1章」→この投稿はPython デザインパターンとは プログラミングにおいて繰り返し現れる問題に対する、適切解のパターン。 無駄無く設計されたオブジェクト指向プログラムの実現をサポート。 パターンとしてカタログ化されていることで 車輪の再発明を防ぐ デザインパターンの根底にある5つの考え 変わるものを変わらないものから分離する プログラムはインターフェイスに対して行う(実装に対して行わない) 継承より集約 委譲、委譲、委譲 必要になるまで作るな(YAGNI) 変わるものを変わらないものから分離する

    Pythonによるデザインパターン5原則 - Qiita
  • 正規表現をサッと確認するのに重宝した神サイトを紹介してみる | DevelopersIO

    はじめに こんぬづは、ゲーム用のPCを東京に置いているため、実家に帰ってくるとゲームができなくてしんどい田中です。こういうときに限って、ゲームの実況動画を見てしまったりして余計に心を痛めています。 さて今回は、今年正規表現をサッと確認するのに重宝した Regexper を紹介します。 Regexper こんなサイトです。とてもシンプル。 以下のような特徴があります。 正規表現を図で表示してくれる 表示した図をダウンロードできる 正規表現を図で表示してくれる 入力欄に正規表現を入力して、Displayボタンを押すと、以下の画像のようにその正規表現のパターンを図示してくれます。 どんな範囲でパターンマッチしてくれるのかがとても見やすくなります。 表示した図をダウンロードできる 入力欄の右下にあるDownloadボタンを押せば、表示した図をダウンロードすることができます。 例えば正規表現の仕様を

    正規表現をサッと確認するのに重宝した神サイトを紹介してみる | DevelopersIO
  • 概要 - Rust APIガイドライン

    Rust APIガイドライン (非公式日語訳) これはプログラミング言語RustのためのAPIデザイン上の推奨事項をまとめたものです。 大部分は、Rustエコシステム内の標準・非標準ライブラリを構築してきた経験を元に、 Rustのライブラリーチームによって執筆されました。 これはあくまで指針です。 項目ごとの充実度には差があり、今後の加筆修正が必要となっている曖昧な部分もあります。 Rustのクレート開発者は、ここから使えそうな内容を選び取り、 イディオマティックで相互運用性の高いライブラリを開発する上での重要な検討事項とするべきです。 また、このガイドラインは義務的に従わなければならない基準とされるべきではなく、 あくまで従わない場合に比べエコシステム内の他のクレートとのより良い相互運用が達成できるような 物となっています。 このブックはチェックリストと各項目の説明に分かれています。

  • Atom vs Visual Studio Code 速度比較!! Electron系テキストエディタ2大決戦!! | 田舎からGeekを目指す

    HOMEブログソフトウェアAtom vs Visual Studio Code 速度比較!! Electron系テキストエディタ2大決戦!! Electron系エディタとして有名な Github製 Atom と、Microsoft製 Visual Studio Code(以下VSCode)。両者とも一定の支持を得ていると思いますが、私は VSCode を使っています。 理由は以前Atom使いがVisual Studio Codeを使ってみたら良い感じだった話 で書きましたが、速度面のメリットが大きいです。 しかし最近では Atom も速くなっているという話を聞きます。実際両者に速度の違いがどの程度あるのか、調べてみました。 環境 15インチ Macbook Pro 2015 macOS Sierra 10.12.6 Atom 1.21.0 x64 Visual Studio Code 1.

  • マスターデータ管理を優しくExcelから解き放つ (ドリコムアドベントカレンダー9日目)

    ドリコムアドベントカレンダー9日目前日は@onkさんの「ドリコムの Gemfile 記述スタイル」です。 自己紹介 奈良阪です。こんなアイコン 株式会社ドリコムに新卒で入って3年目、スマホゲームサーバーのRailsとか、新規サービスのTypeScriptとか、Elixirとか、少しPythonとか、なんかよくわかんない組み合わせですがどれも並行してざくざく書いてます。 なお弊社最近JavaScript開発知見がなかったのでむしろしがらみがなく、趣味でやってた自分好みのTypeScript開発体制をスッと入れられてほくほくしています。有識者目指していく。最近github.com/Narazakaの上の方に上がってきたswagger云々とかのTypeScriptプロジェクトは、仕事で環境整備しているのの切れ端だったりします。 趣味では伺かというデスクトップマスコットのWeb移植版を作ってたけ

    マスターデータ管理を優しくExcelから解き放つ (ドリコムアドベントカレンダー9日目)
  • BEM を使うべき5つの理由(なぜ BEM が G.R.E.A.T といえるのか) - Frasco

    CSS は、比較的簡単に使いこなすことができます。しかし、それを使い続け綺麗な状態を長期的に保つこととは全く別の話です。知らず知らずのうちに乱雑になっていきます。ありがちですよね?そんな時、命名規則の出番です。様々な選択肢がある中で私が選んだのが BEM なのです。 BEM とは何か BEM とは、命名規則の一種で、モジュラーでメンテナンス可能なスタイルを書くことができます。 BEM は、Block-Element-Modifier の略語で、クラス名は3つ[^1]のパートから成ります。実際の表記は block__element--modifier となり、Block から始まり、次に Element(アンダースコアが2つ)、そして最後に Modifier が続きます(ダッシュが2つ)。 画像1:BEM で命名されたコンポーネントの例 Block(ブロック) Block は、独立しており再

    BEM を使うべき5つの理由(なぜ BEM が G.R.E.A.T といえるのか) - Frasco
  • Linus Torvalds氏によるGitの内部構造の解説 - Qiita

    初めに LinusによるGitのinitial commitのREADMEの訳です。 社内のSVNからの移行を促すために資料を整備していたのですが、SVNでやっていたことを移し替えたりコマンドを覚えたりするより内部構造を知ったほうが早いことに気づきました。 それで、gitの内部構造についての解説資料を色々見ていたのですが、データ構造については原作者のこのREADMEに言い尽くされている気がします。のみならず、gitを使うものが抱くべき精神性のようなものが示されており、深い感銘を覚えました(ヒャッハー)。 README: ”GIT - 馬鹿コンテンツトラッカー” コミットメッセージ:git, 地獄からきたインフォメーションマネージャ gitの意味 "git" は何を意味することも出来る、お前の気分次第だ。 3文字で、発音可能で、実際のUNIXシステムで共通コマンドとして使われていないものであ

    Linus Torvalds氏によるGitの内部構造の解説 - Qiita
  • 雰囲気でシェルを使っている人のためのシェル入門 | κeenのHappy Hacκing Blog

    κeenです。雰囲気でシェルを使ってる人が多いとのことだったので少しばかり込み入った知識を。 あと一応POSIX準拠かどうかも気にしながらやっていきます。 基礎知識編 シェルの種類 まず、POSIXにシェルが定義されています。 これに最低限の機能で準拠しているものをPOSIXシェルと呼ぶことにします。いわゆる/bin/shです。具体的な実装はbsh、ash、dashあたりでしょうか。 最低限の機能以上に色々拡張されているシェルを拡張POSIXシェルと呼ぶことにします。具体的な実装はbash、zsh、kshなどでしょうか。 ここでは触れませんがPOSIX準拠でないシェルも存在してcshやtcshなどのシェルがあります。あと確か最近話題のfishも違ったような。 さて、1つ問題になるのは普段使いのコマンドラインはおおむね拡張POSIXシェルでしょうが、サーバで使うシェルやデプロイスクリプトで呼

    雰囲気でシェルを使っている人のためのシェル入門 | κeenのHappy Hacκing Blog
  • SQLトランザクション分離 実践ガイド | POSTD

    (注:2017/10/16、いただいたフィードバックを元に翻訳を修正いたしました。) (注:2017/10/11、いただいたフィードバックを元に翻訳を修正いたしました。) データベースのドキュメントで分離レベルを目にして、軽く不安を感じつつ、あまり考えないようにしたことはないでしょうか。トランザクションの日常の使用例できちんと分離について言及しているものはほとんどありません。多くはデータベースの初期設定の分離レベルを利用しており、後は運頼みです。しかし、来、理解しておくべき基的なトピックであり、いくらか時間を投入してこのガイドの内容を学習すれば、もっと快適に作業できるようになるでしょう。 私はこの記事の情報を学術論文、PostgreSQLドキュメンテーションから集めました。分離レベルの 何たる かだけでなく、適用の正確さを保持しつつ最大速度で使うにはいつ使うべきか、という疑問に答えるべ

    SQLトランザクション分離 実践ガイド | POSTD
  • 個人開発を加速させるツール群

    俺コン Vol.1 / Day. 2 https://orecon.connpass.com/event/64285/ Firebase, Google Analytics, Fabric, Apple App Analytics の個人的使い分け http://starhoshi.hatenablog.com/entry/2017/07/04/Firebase%2C_Google_Analytics%2C_Fabric%2C_Apple_App_Analytics_%E3%81%AE%E5%80%8B%E4%BA%BA%E7%9A%84%E4%BD%BF%E3%81%84%E5%88%86%E3%81%91 Rails サーバから Google Analytics API で情報を取得する手順 http://bekkou68.hatenablog.com/entry/2014/08/20

    個人開発を加速させるツール群
  • Markdown で書いた試験仕様書を Excel に変換するツールを作った | 田舎からGeekを目指す

    だいたいの試験項目書は Excel で作られている事が多いと思いますが、試験手順の修正や項目追加などでちょいちょい変更することがあって、バージョン管理していると衝突したり差分がわからなくなったりしがちだったりしませんか? そんな現状をなんとかすべく、試験仕様書を Markdown で書くという試みをしてみました。(一応、実プロジェクトでも運用済み) Githubプロジェクトとして公開しています。 以前 Java で書いてたのですが、今だと Kotlin の方が管理しやすそうだったので Kotlin で書き直しました。Kotlin当に書いてて気持ち良い言語。 使い方 Github の README にも書いてますが、ここでは日語で説明書きます。 1. 試験仕様書の Markdown を書く 下記のような Markdown を作成します。 # 試験カテゴリ ## 大項目サンプル ##

    Markdown で書いた試験仕様書を Excel に変換するツールを作った | 田舎からGeekを目指す
  • 続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi

    いつも心に冪等性。古橋です。 リトライと冪等性のデザインパターンの完結編です。 だいぶ間が空いてしまいましたが! 最後に冪等性を実装する汎用的な実装手法についてまとめていきます。 パターン6:操作ログとリクエストIDでUPDATEを冪等にする 同じIDで識別される値がUPDATEされる場合、つまりmutableである値の管理は、一般に冪等に行うのが難しい。 例えば、ユーザーごとに「最後に購入したアイテム」を更新する操作を考えてみると: 1. ユーザーAが最後に購入したアイテムをアイテム1に変更する(UPDATE) 2. ユーザーAが最後に購入したアイテムをアイテム2に変更する(UPDATE) この操作に何の対策もなくリトライを実装した場合、後続のUPDATE処理の結果を古い内容で上書きしてしまう可能性がある: 1. ユーザーAが最後に購入したアイテムをアイテム1に変更する(UPDATE)→

    続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi
  • PythonでCSVを高速&省メモリに読みたい - tkm2261's blog

    今日はPython (Pandas)で高速にCSVを読むことに挑戦したいと思います。 Kaggleに参加するたびに、イライラしていたので各実装の白黒はっきりさせようと思います。 R使いが羨ましいなぁと思う第一位がCSV読込が簡単に並列出来て速いことなので、 なんとかGILのあるPythonでも高速に読み込みたいと思います。 ただ、この検証ではコーディング量が多いものは検証しません。 CSV読込は頻出するので、フットワークの軽さが重要です。(オレオレライブラリ嫌い) Pickleは早いけど。。。 結論はDask使おう! 検証環境 データ 速度検証 pandas.read_csv() pandas.read_csv() (dtype指定) pandas.read_csv() (gzip圧縮) numpy.genfromtxt() pandas.read_csv() (chunksize指定 +

    PythonでCSVを高速&省メモリに読みたい - tkm2261's blog
  • Filesystem Hierarchy Standard - Wikipedia

    Filesystem Hierarchy Standard(ファイルシステム・ハイアラーキー・スタンダード、FHS、ファイルシステム階層標準)は、Linuxを含むUnix系オペレーティングシステム (OS) での主なディレクトリとその内容を定めたものである。大部分において、BSD系のディレクトリ階層を基にして拡張し定式化している。 主要ソフトウェアおよびハードウェアベンダーからなる非営利組織Linux Foundationが保守管理しており、HP、レッドハット、IBM、デルといったベンダーが参加している。 2020年11月)現在の最新版は3.0で、2015年6月3日に発表された[1]。 概要[編集] 多くのLinuxディストリビューションはFHS準拠を方針として宣言し、FHSにしたがっている[2][3][4][5]。 もともと、UNIXやUnix系OSには、/etcや/binや/usrなど

  • リクルートテクノロジーズ 新人研修特別編を公開します

    こんにちは。アプリエンジニアの五味です。 2017年4月にリクルートホールディングスの新卒Web採用枠で入社した新卒社員のうち、21名がリクルートテクノロジーズに配属となりました。(いらっしゃい!) リクルートテクノロジーズでは「ブートキャンプ」と呼ばれる新卒社員向けの技術研修を3か月間実施しています。 もともと高い能力を持つ彼・彼女らですが、「これからのリクルートをリードしていく存在」になって欲しいという期待を込め、プロとしての重要な立ち上がり期を支援しています。 今年からは社外講師の既存プログラムに加え、より実践的な内容を求める経験者をターゲットに、総勢12名の現場エンジニアが担当する特別講座を開催しました。 各分野のスペシャリストがこれまで現場で培ってきた「当に必要な生きた知識・技術」のインプットは、彼・彼女らの成長を加速させ、これからのエンジニア人生の礎になってくれるものと僕らは

    リクルートテクノロジーズ 新人研修特別編を公開します
  • Repo Split - GitHub/Gitlab上でソースコードを読みやすくするChrome機能拡張 MOONGIFT

    GitHubGitlabのリポジトリはWeb上でも読めて便利ですが、いちいちディレクトリを辿る度に画面遷移するのは面倒に感じるかも知れません。もっとさくさく読みたくて、結局ローカルにcloneするのではないでしょうか。 そこで使ってみたいのがRepo Splitです。GitHub/Gitlabのリポジトリをもっと読みやすくするChrome機能拡張です。 Repo Splitの使い方 実行したところです。見た目がまるで変わります。自動でこうなるわけではないので安心してください。 ファイルを選択すればコンテンツが表示されます。 ディレクトリはツリービューで展開されます。 複数ファイル開くこともできます。 Repo SplitGitHub/Gitlab上でソースコードをどんどん読んでいくために作られたUIとなっています。スプリットビューなどとても便利です。Web上でソースコードを読む機会が多

    Repo Split - GitHub/Gitlab上でソースコードを読みやすくするChrome機能拡張 MOONGIFT
  • 66歳からプログラミングを始め、自作の罠で年間90頭の猪を狩る猟師がいるらしい | Tech2GO

    更新日: 2017年9月26日公開日: 2017年5月18日66歳からプログラミングを始め、自作の罠で年間90頭の猪を狩る猟師がいるらしい こんにちは!Tech2GO編集部の岸です! 皆さんは「猟師」と聞いてどんな印象を持っていますか?「田舎」「銃を撃って鹿や猪を狩る」「当に猟師なんて存在するの?」などでしょうか? 実は私も滋賀県で猟師として活動しながらメディア「Tech2GO」にて勤務しています。猟師がIT系の会社にいるなんてびっくりですよね。ちなみに普段僕は鹿を狩っています。 ↓こんな感じです。 そんな、普段出会うことの少ない猟師が「Ichigo Jamを使った獣用の箱罠を自作」し成果を上げていると聞き、シニアプログラミングネットワーク #1に登壇されるとのことで滋賀から東京まで行ってきました! 「ichigojam」とは、子供向けの安価なプログラミングが可能なパソコンのことです

    66歳からプログラミングを始め、自作の罠で年間90頭の猪を狩る猟師がいるらしい | Tech2GO
  • モック用のJSONやCSVなどのデータを大量にかつ簡単に作成できるMockarooを試してみた - とんちむ日記

    どうも、フロントエンジニアになりたい人です。 js側から叩くAPIがまだサーバーサイドで実装されてないけど、js側の処理も先にやっとかないといけないって状況ありますよね・・多分。僕は今のところ経験したことないけどきっとある。 あと、テスト用のデータ欲しいとか。簡単なjsのデモ作りたいけどそのためにAPIを実装するのも面倒だとか、そもそもサーバーサイド作れないとか。 そこでAPIの仕様さえ決まってれば1000件のデータまで無料でJSON(CSVや TSVとかなんならSQLもいけるらしい)ファイルを作ってくれるサービスMockarooを見つけました。 こちらが初期状態です。 Field NameはDBでいうカラム名ですね。Typeはどういうデータを入れたいかを指定します。ランダムでそれっぽいデータを作って入れてくれます。Fakerっぽいやつだと思って貰えば良いかと。 Optionにあるblan

    モック用のJSONやCSVなどのデータを大量にかつ簡単に作成できるMockarooを試してみた - とんちむ日記
  • Painting with Code

    Today, we’re excited to share a tool we built to help bridge the gap between designers and engineers working on design systems at scale. React-sketchapp is an open-source library that allows you to write React components that render to Sketch documents. If you’re a designer or an engineer familiar with React, you should feel right at home with the new library, and you can play with it right now. H

    Painting with Code
  • webのプロジェクトフォルダ直下のファイルの意味をまとめてみた - Qiita

    (2017/06/02) package-lock.jsonについて追記しました。 昨今のweb開発では、プロジェクト直下に多くのファイルが配置されます。 エントリーでは、1つ1つのファイルがどんな意味を持つのか、どんな技術で使われているのかをまとめました。ピックアップしたのはGoogleのWeb Starter Kitの一部と、筆者がよく使う技術です。 次のファイルについて紹介します(随時更新中)。 package.json .gitignore webpack.config.js gulpfile.js .eslintrc tsconfig.json tslint.json yarn.lock package.json npmの設定ファイルです。 npmとは、Node.jsのパッケージを管理するためのツール。Node.jsのパッケージとは、Sassを使うためのnode-sassパッケ

    webのプロジェクトフォルダ直下のファイルの意味をまとめてみた - Qiita