タグ

ブックマーク / tech.uzabase.com (4)

  • 2024年のPythonプログラミング - Uzabase for Engineers

    ソーシャル経済メディア「NewsPicks」で推薦や検索などのアルゴリズム開発をしている北内です。Pythonは頻繁に新機能や便利なライブラリが登場し、ベストプラクティスの変化が激しい言語です。そこで、2024年2月時点で利用頻度の高そうな新機能、ライブラリ、ツールなどを紹介したいと思います。 この記事では広く浅く紹介することに重点を置き、各トピックについては概要のみを紹介します。詳細な使用方法に関しては各公式サイト等での確認をおすすめします。なお、記事ではOSとしてmacOSを前提としています。 環境構築 Pythonの環境構築はpyenvとPoetryの組み合わせがもっとも標準的でしょう。 以下の手順でpyenvとPythonをインストールできます。 brew install pyenv # Bashの場合 echo 'eval "$(pyenv init -)"' >> ~/.ba

    2024年のPythonプログラミング - Uzabase for Engineers
    Nyoho
    Nyoho 2024/02/05
  • なぜテストコードを書くのだろう? - Uzabase for Engineers

    こんにちは、NewsPicksの北見です。 ところで皆様、テストコードって書いてますか...? ネットでテストコードについて検索すると 「テストコードを書きましょう」 「テストコードとはこうあるべし」 「TDD(Test Driven Development)だ」 等々が叫ばれています。 ただ、なんとなく「方法論ありきでとにかくテストを書け」と言われているようで、テストの必要性について納得感に欠けている方もいらっしゃるのではないでしょうか? なぜ テストコードを書くのでしょうか? テストコードを書く理由 将来リファクタリングをしやすくする テストコード書く途中で、開発者自身が仕様を理解し、成長できる 最後に テストコードを書く理由 諸説ありますが、私が思うテストコードを書く理由は 将来リファクタリングをしやすくする テストコード書く途中で、開発者自身が仕様を理解し、成長できる の2つです。

    なぜテストコードを書くのだろう? - Uzabase for Engineers
  • iOSアプリ起動高速化に挑戦!不要コードやリソースの見直しとライブラリのstatic化編 - Uzabase for Engineers

    みなさんこんにちは。NewsPickでiOSアプリの開発をしている森崎です。 当記事ではどのアプリも一度は見直しを検討したことがあるであろう、アプリの起動時間の高速化についてお話しします。 他の記事で起動時の処理や高速化への改善策を書いたので、ここでは具体的に行ったこととその結果を数字とともに書きたいと思います。 ⬇️起動時の処理や高速化への改善策を書いた記事です。 こちらを読んでもらうと、当記事の内容がより理解できると思います。(読まなくてももちろんわかります!) qiita.com 今回はSystem Interface Initializationの箇所の見直をしました。(⬇︎この箇所) InstrumentsのApp Launchの計測結果 System Interface Initializationでは何をしているのか まずは結果から 具体的な作業内容 不要な実装の削除 dyn

    iOSアプリ起動高速化に挑戦!不要コードやリソースの見直しとライブラリのstatic化編 - Uzabase for Engineers
    Nyoho
    Nyoho 2022/09/20
  • NewsPicks クラッシュしないアプリ制作の鉄則 - Uzabase for Engineers

    NewsPicksサービスの開発を行っている大川です。 日はNewsPicksのスマホアプリがどんな設計になっているかを紹介します。社内LTネタを元にしています。 階段の部分はどうやってるの?(『NewsPicksUIデザイン』) 文字が読みやすいように工夫しているの? などいろいろと観点はあるとは思いますが、まずは全体として絶対に守っている「竜骨」とも言うべきコアの設計についてお話しします。どのアプリでも必ず守るべき鉄則となります。 鉄則とは端的に言うと、 ビジネスロジックをView, ViewControllerに密結合させない ということです。 まず大前提として、下記の3レイヤーに分けた設計を行います。 プレゼンテーション層は、ユーザーの操作に従ってViewのコントロールを行います。 ビジネス層は、データそのものや、データの取り扱い責務を担います。Viewへのデータ変更通知も行い

    NewsPicks クラッシュしないアプリ制作の鉄則 - Uzabase for Engineers
  • 1