タグ

TIPSとprogrammingに関するclavierのブックマーク (87)

  • Pythonの構造的パターンマッチングのさらに便利なパターン紹介 | gihyo.jp

    鈴木たかのり(@takanory)です。今月の「Python Monthly Topics」では、第1回で紹介したPython 3.10の新機能「構造的パターンマッチング(Structural Pattern Matching⁠)⁠」の続きをお届けします。 前回は構造的パターンマッチング全体の説明、いくつかのパターンをコード例を交えて紹介しました。今回はその続きとして、前回紹介できなかった他のパターンについても紹介します。 Python 3.10の新機能:構造化パターンマッチング | gihyo.jp 構造的パターンマッチングとは 前回の繰り返しになりますが、この記事で初めて構造的パターンマッチングを知った人に向けて、簡単に紹介します。詳細は上記の記事を参照してください。 構造的パターンマッチングはPython 3.10で新しく導入された文法です。Python 3.10は2021年10月に

    Pythonの構造的パターンマッチングのさらに便利なパターン紹介 | gihyo.jp
  • 現場で役立つGo言語のTipsをただまとめてみた

    はじめに こんにちは、23卒でバックエンドエンジニアをしているたかしゅんです。 私の所属しているプロダクトではサーバーサイドの開発言語としてGoを採用しております。 チームでGoの勉強会をした際にあまりにもGoの流儀や綺麗な書き方を理解していなかったので、以下の書籍を読みました。 [Go言語 100Tips ありがちなミスを把握し、実装を最適化する] この書籍から得た知見、プルリクエストのレビューで受けたアドバイス、そしてコードレビュー時に意識すべき点などを基に、知識を整理し共有したいと思います。 基礎文法は理解しているけど、実際のプロダクトで何を意識して書けば良いのかわからない方に、少しでも参考になれば幸いです。 1. コード 1.1 不用意にネストしない 可読性の悪いコードには命名、一貫性、書式など様々な原因がありますが、その中の重要な原因の一つとしてネストが関係します。 よくある例と

    現場で役立つGo言語のTipsをただまとめてみた
  • 遅くないpandasの書き方 - ML_BearのKaggleな日常

    これは何? この記事は Kaggle Advent Calendar 2021 の7日目の記事です。 pandasはデータ分析ライブラリとして非常に便利ですが、書き方を間違えると簡単に処理が遅くなってしまうという欠点があります。そこで、この記事では遅くならない書き方をするために気をつけたいポイントをいくつかご紹介したいと思います。 この Colab Notebookの実行結果をエクスポートした上で、不要な部分を一部削って記事にしています。colab notebook をコピーして実行してもらえれば再現することが可能なはずです。(colabにコメント等をいただいても返すことはできないと思います、すみません。) 前提条件 この記事ではあくまで「遅くない(なりづらい)書き方を紹介する」ことに努めます。よって、以下のような改善点はあるが一旦考慮の外におくものとして話を進めます。 並列化ライブラリ

    遅くないpandasの書き方 - ML_BearのKaggleな日常
  • pythonで小さなツールを作る時のtips - Qiita

    自分で小さいツールを作る時に心に留めているtipsです. 書き始めたときは「どうせ書捨てだし」と思って書き始めると意外と長い間,もしくはいろんなところで使うことになったりするので,気をつけておくと後から楽になるというような小技です.大規模なソフトウェアの開発ではまた違った流儀があると思います. メインルーチンを関数にする 関数名はなんでもいいのですが,自分は趣味で main() という名前の関数を用意し,メインルーチンは全てそこに書くようにしています. #!/usr/bin/env python def main(): print('hello, hello, hello!') if __name__ == '__main__': main() pythonの小さなサンプルコードを見たりすると関数外の部分にベタで実行コードが書かれていたりします.もちろんそれでも動くのですが,以下の2点で後

    pythonで小さなツールを作る時のtips - Qiita
  • シェルスクリプトの処理境界が鮮明になる「名前付きブロック記法」なるものを考えてみた

    シェルスクリプトは長くなると処理の境界が不鮮明になりがち。 コメントで処理の境界を表現する工夫はよく見かけるが、もっと良い方法はないか考えてみた。 :コマンド、&&演算子、複合コマンド()や{}を組み合わせて書くと、処理の境界線がはっきりする。

    シェルスクリプトの処理境界が鮮明になる「名前付きブロック記法」なるものを考えてみた
  • pythonの内包表記を少し詳しく - Qiita

    pythonの内包表記について nbviewerにも投稿済。 pythonといえば内包表記です。 <= 偏見? でも、慣れないと読みにくいので、少し詳しく読み方をまとめてみました。 通常のリスト生成 extension_1 = [] for i in range(10): extension_1.append(i) extension_1 #>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] リスト内包表記 基構文 [counter for counter in iterator] 僕は先に [i for i in] だけ書いてから修飾することが多いです。 extension_1と同等のリストを内包表記で生成する場合は

    pythonの内包表記を少し詳しく - Qiita
  • 新米Android開発者が見落としがちな3つのポイント - クックパッド開発者ブログ

    こんにちは、投稿推進部の吉田(@101kaz)です。Androidアプリの投稿周りの開発を担当しています。 去年クックパッドに入社したことをきっかけに、格的にAndroid開発をするようになりました。 今回は私のような開発をはじめて日が浅い人が見落としがちな「非同期処理時のNPE(NullPointerException)」と「Activity破棄に関する問題」と「ProGuardの設定忘れ」について実際の遭遇した事例をベースに紹介します。 非同期処理コールバック時のNPE ある時Fragmentから非同期処理を行い、コールバック内でFragmentの内のviewにアクセスするコードを書きました。 @Override public void onActivityCreated(Bundle savedInstanceState) { ApiClient.getRecipes(new Ap

    新米Android開発者が見落としがちな3つのポイント - クックパッド開発者ブログ
  • マルチユーザ対応 Android 4.2以降の内部ストレージと外部ストレージ | TechBooster

    getFilesDirで取得できるPath以下にファイルを作成する。第1引数にファイル名、第2引数にアクセスモードを指定(MODE_PRIVATEが一般的)する。 ActivityクラスのgetFilesDirメソッド、getCacheDirメソッドを使うと端末で指定されているアプリケーション専用のデータ領域を取得できます。 ログにパスを出力するだけの簡単なサンプルコードを用意しました。実行してマルチユーザ時の挙動を確認してみましょう。 //アプリケーション専用データ領域 //ファイル保存ディレクトリ Log.d("Multi", " getFilesDir(): " + getFilesDir()); //キャッシュ保存ディレクトリ(消去される可能性あり) Log.d("Multi", " getCacheDir(): " + getCacheDir()); ※ちなみにCacheDirは

    マルチユーザ対応 Android 4.2以降の内部ストレージと外部ストレージ | TechBooster
  • 茨城県と栃木県のデータがおかしいときに確かめること - Qiita

    都道府県別のデータを扱う機会ってありますよね. 私もとあるサービスの都道府県別データを解析しておりました. $ wc -l location_data/location-*.csv | sort | head 0 location_data/location-8.csv 0 location_data/location-9.csv 12 location_data/location-38.csv 14 location_data/location-36.csv 20 location_data/location-31.csv 26 location_data/location-32.csv 29 location_data/location-16.csv 33 location_data/location-18.csv 48 location_data/location-39.csv 52

    茨城県と栃木県のデータがおかしいときに確かめること - Qiita
  • 改訂版: プログラマーが効果的な可視化を作成する (前編) - Qiita

    改訂版について (5/7/2019公開) この記事は、私がこちらに公開したもの中では最も読まれているようです。そこで、執筆後に気づいたこと、古くなった情報、新しい技術動向などを考慮に入れて改訂をしました。主な変更点は以下の通りです: 新しいセクションの追加 最近のの紹介 細かな表現の修正 この記事は複数のセクションに分かれていますので、前編から始め、順番にアップデートして行きたいと思います。何かお気付きの点などありましたら、コメント欄、もしくはkonoアットマークucsd.eduにお願いいたします。 はじめに この記事は、可視化の専門家ではない人がコンピュータを使ってデータ可視化を実際に行う場合に必要な、一般的なノウハウをお伝えするシリーズの第一回です。 前編: 効果的なデータ可視化とはどのようなものか? (稿) 中編: 分かりにくい可視化を避けるための手法の選択 後編: Part 1

    改訂版: プログラマーが効果的な可視化を作成する (前編) - Qiita
  • iOS開発でのスキーマとビルド設定の活用

    お待たせいたしました。久しぶりにRetty株式会社さんからご寄稿をいただきました。今回は、iOS開発での環境を切り変えるために便利な「スキーマとビルド設定」について、ご自身の体験を交えてご紹介いただいております。 ごあいさつ はじめまして、Retty株式会社の櫻井と申します。今回からiOSの開発で得たノウハウなどをブログ記事に書かせていただくこととなりました。今後、読者の皆さんのご意見なども取り入れつつ、何か役に立つような記事を書いていきたいと思っていますので、よろしくお願いします。 記事の内容としては、弊社で開発しているRettyというグルメサービスの開発の実例を通じて、教科書にはあまり載っていないTIPS、落とし穴等を紹介したいと思います。対象読者として複数人のチームでiOSアプリ開発をされている方を想定しています。 はじめに 背景と問題点 サービスとして提供し続けるWebアプリケーシ

    iOS開発でのスキーマとビルド設定の活用
  • Java並行・並列・非同期処理チートシート

    Java 1.5以降では Executorsフレームワーク 利用を優先検討のこと。 遅延実行(タイマー) クラス / メソッド 概要 Since

    Java並行・並列・非同期処理チートシート
  • 第7回はDeNA開催! #potatotips で発表されたiOSのtipsまとめ - Think Big Act Local

    第7回となるクックパッドさんの #potatotips に参加させて頂きました。 今回は株式会社DeNA@渋谷ヒカリエでの開催でした。 https://github.com/potatotips/potatotips/wiki/Potatotips-7 potatotipsは発表者だけが参加できる、持ち時間1人5分のtips共有会です。 7回目となる今回も濃厚なtipsが多く発表された会となりました。 そんな第7回で発表された11個のiOSのtipsをまとめます! ※Androidのtipsはこちらをご参考ください → DeNA開催! #potatotips 7に参加してきました。 Android tips 11個まとめ iOS tips ICTurorialOverlay @i110さん プロダクトにはオーバーレイ型のチュートリアルを作りがち 透過のviewを張るだけなら良いが、フォーカ

    第7回はDeNA開催! #potatotips で発表されたiOSのtipsまとめ - Think Big Act Local
  • Modernize your Objective-C

    Many people consider the Objective-C a verbose language, with a cumbersome syntax, whilst it is actually a very simple language with few rules. Year after year the language has been changed many times with small but very important improvements. Particularly in the last two years many features have been added to modernize the language. In this talk you will see all the latest news and a series of b

    Modernize your Objective-C
  • JavaScriptでbind()を使って部分適用する - HackerNews翻訳してみた

    「HackerNews翻訳してみた」が POSTD (ポスト・ディー) としてリニューアルしました! この記事はここでも公開されています。 Original article: Partial Application in JavaScript using bind() by Pascal Hartig JavaScriptの中にはコードをもっとシンプルで見やすくできるパターンがあるのに、あまり使われていないものがあります。皆さんもFunction.prototype.bindはご存じでしょう。頻繁に使われていたvar that = thisやvar self = thisの代わりになる関数です。よくあるのが以下のような例です。 this.setup = function () { this.on('event', this.handleEvent.bind(this)); }; 第1引数が

  • Linuxでaio - (ひ)メモ

    実装が2つある。以下、あくまで今の時点でのLinuxの場合の状況/実装のおはなし。 POSIX aio aio_read(3) とか aio_write(3), aio_error(3), aio_return(3) とか。 インターフェースはPOSIXで定義されているのと同じ。 システムコールじゃなくてライブラリ関数(librt) 裏でpthreadつくってがんばってるげ。 libaio http://lse.sourceforge.net/io/aio.html http://ftp.jaist.ac.jp/pub/Linux/Fedora/development/source/SRPMS/libaio-0.3.106-3.2.src.rpm とか io_prep_pread(2), io_prep_pwrite(2), io_submit(2), io_queue_init(2),

    Linuxでaio - (ひ)メモ
  • Objective-Cが好きになるTips & Hackを勝手に補足 - yashiganiの英傑になるまで死ねない日記

    TLで見かけたこのスライド,いいところをついていてちょっとObjective-Cをやったことのある人が,もっと興味を持つきっかけを作るにはすごく良いスライドだと思った. Objective-C が好きになる Tips & Hack from Taketo Sano けど,内容を見た感じ初学者を対象としているわりに,ここで取り上げられているTipsやHackの負の側面に対するフォローが無い. 一応「やるかやらないかはあなた次第」とあるが,なぜというところが抜けているので初学者には判断できないと思う. 特に紹介されている例はあまり行儀の良い方針では無いように感じたので,これを初学者がそっくりそのまま真似をするのはあまりよろしくない. 反響も結構あるようで気になったので,勝手にこのTipsやHackの負の側面(行儀の良くない面)について補足をしておく. カテゴリメソッドの命名について このスライ

    Objective-Cが好きになるTips & Hackを勝手に補足 - yashiganiの英傑になるまで死ねない日記
  • Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita

    ファイル編集がコンフリクトした場合 下記はよくある(忌々しい)コンフリクト画面ですね。 皆さんはコンフリクトのmergeはどんな方法でやっていますでしょうか? vimemacsで直接編集している方が多いイメージですが、実際開いてみると、下記のように差分が表示されていると思います。 この画面を見ただけではどのようにmergeすればよいのかわかりません。(Objective-CのARC/MRC双方の開発経験がある人は目をつぶってください・・) gitにはこのようなコンフリクトのmergeを支援するgit mergetoolコマンドが搭載されています。 このままEnterキーを押すと下記のような画面が立ち上がります。 画面幅の都合でフォントが小さいのですが、ここで「mergeしたい差分が作られる直前の状態」と「mergeしたい差分」に注目してみます。 この2つを見比べると、@propertyの

    Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita
  • シェルスクリプトを書くときはset -euしておく - Qiita

    エラーがあったらシェルスクリプトをそこで打ち止めにしてくれる(exit 0以外が返るものがあったら止まるようになる)。「あっあれここでうまくいってないからデータ準備できてないのにあれあれっもうやめて!」ってなるのを防げる。 set -u 未定義の変数を使おうとしたときに打ち止めにしてくれる。Perlでいうuse strict 'vars';的なもの。 って気軽な気持ちで書いてしまって、「ん、やたら時間かかると思ったらスペルミスうわなにをするやめ」ってなるのを防げる。 一部だけ例外にしたい はてなブックマークのコメントより -e は command1 || command2 みたいなことが出来なくなるの使うことないな。-uは付けといて良いが。 確かにおっしゃるとおりですね。コマンドの失敗を考慮して書いている部分については(もしくはやたらexit 0以外するコマンドを呼ばないといけないときなど

    シェルスクリプトを書くときはset -euしておく - Qiita
  • throw Life - AndroidのFile入出力サンプル

    一般的と思われる方法でコピーを実装します。 つまり、InputStreamでファイルを読込み、書き込み用のOutputStreamに流し込みます。 #読みやすくするため例外処理を入れていません。 public static void copyFile(String srcFilePath, String dstFilePath) { File srcFile = new File(srcFilePath); File dstFile = new File(dstFilePath); // ディレクトリを作る. dstFile.mkdirs(); // ファイルコピーのフェーズ InputStream input = null; OutputStream output = null; input = new FileInputStream(srcFile); output = new F