タグ

ブックマーク / qiita.com (1,104)

  • 宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita

    この記事は、ある程度以上の規模のGUI開発において、React Hooks以後の宣言的UIにより、大規模開発に用いられる設計論に完全に対応できるようになり「ビジネスロジックの変更や追加」に対応するコストを低く保つこと(技術的負債の抑制)ができるようになったことを解説するものです。 技術的負債の抑制には、技術的負債の原因となりがちな「広範囲の密結合」と「適切な疎結合を保つ仕組みの欠如」が欠かせません。それをカバーするのが、大規模開発をクリーンに行える設計論(ここでは「現代的な設計論」とよぶもの)です。クリーンアーキテクチャなんかでGUIによく適用されるHumble Object Patternのようにプレゼンテーションとビューを分離する必然性が無くなるでしょう。 ポイントは ある程度以上の規模で開発するなら設計論をうまく使い設計しないと、技術的負債を抱え込む(ビジネスロジックの変更や追加に対

    宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita
  • Androidアプリの審査が長くなった件 - Qiita

    8/26 追記 改めて気になることがあったので、サポートチームへ問い合わせをしてみました。 一度目に問い合わせた方と別の方に対応していただいたのですが、「審査は土日祝も含めグローバルチームが対応する」という回答を頂きました。 リリース前の審査はすべてのアプリの公開、更新に対して行うのは確定なようですが、審査にかかる時間については、記事の情報は参考程度に留めておいてください。 先日Androidアプリをリリースしようといつもどおりの作業を行ったのですが、5時間たっても公開されない状況が続いていたため、なにかあったのかと思いコンソールを見てみると、初めて見るメッセージが表示されていました。 「Androidアプリに審査…?公開後に機械的にやってるんじゃないの…?」 と思ったのですが、Twitterなどで調べてみると、Androidアプリの審査があってアプリが公開できていないという話をされてる

    Androidアプリの審査が長くなった件 - Qiita
  • 事業会社とOSS - Qiita

    最近、社内でよく話をする内容についてまとめました。 企業がOSS化するといろいろメリットがあると思っていて、社内でもそこのコンセンサスはうちの技術横断部門のメンバー間では取れていたりするのですが、自社以外の人とかと話をする時もあるので、いろいろまとめておきます。 なお、この文章では業をOSSにしつつビジネスを回そうみたいなElasticsearchとかMongoDBとかMySQLみたいな話題はとりあげず、業が別にある会社がOSS化する、という部分に特化した話です。 9/13に追記 よく言われるメリットとデメリット メリットは、公開することで開発が自然と進み、コスト削減になる。一方でノウハウの流出などのデメリットがある、みたいなトレードオフ、という理解をしている人が多いようです。 コストは削減にならない OSS化したら多くの人に使ってもらいたいですよね?というのは考えるわけですが、その「

    事業会社とOSS - Qiita
  • react-redux hooks 時代のContainerコンポーネント - Qiita

    先日 react-redux の v7.1 の stable release で hooks に対応したAPIが入り界隈で話題になりましたね。(追加されたAPIの詳しい解説はこちら https://react-redux.js.org/api/hooks) 結構コンポーネント内からお手軽に参照できる感動を伝えている情報が多いのですが(実際私も感動の嵐です)、ここで改めて「なんで Container コンポーネントって必要なんだっけ?」と「hooks APIではどうやって Container コンポーネントを書くのか」を考えていきます。 なぜ hooks API になった今でも Container コンポーネントが必要なのか 始めにここで言う "Container コンポーネント" は 「Redux の Store から値を注入するためのもの(あとdispatch 関数)」という狭義の意味で

    react-redux hooks 時代のContainerコンポーネント - Qiita
  • AndroidアプリをビルドするBitriseのワークフローを効率化した話 - Qiita

    はじめに 私達のチームはBitriseと呼ばれるCI/CDツールでアプリをビルドしてします。 もともとAndroidはJenkins+Amazon EC2でビルド、iOSはJenkins+mac miniでビルドしていたのですが、環境のメンテナンスの手間やiOS側のビルド速度の遅さが気になってきたこともあるのと、bitriseのほうが各種サービスとの連携がしやすそうということから、乗り換えることにしました。 Bitriseは大変高機能で便利なツールですが、高機能でできることが多すぎるゆえにやや取っつきにくいという難点があります。 私自身もまだBitriseでわからないことだらけで手探りで使っています。 Bitriseにはワークフローと呼ばれる、ステップの集合体をつくることができますが、このワークフローをうまく整理しないとワークフローが増えたときにメンテナンスが大変になってきます。 この記事

    AndroidアプリをビルドするBitriseのワークフローを効率化した話 - Qiita
  • 気をつけたいGradleの推移的依存関係とその解決 - Qiita

    Gradleはライブラリの依存関係を上手に管理してくれるすぐれものですが、まれに突拍子もない不具合が発生する場合があります。しばらく前にGradleの推移的依存関係でハマったことがあったので、その具体的現象と原因、解決方法についてまとめておきました。 推移的依存関係とは? Gradleのドキュメント読んでも、ほへー、位の感想なんで、こちらのサイトがわかりやすかったです。端的に言うと、複数のライブラリがあるライブラリ(A)に依存している場合、Aはバージョンが一番最新のものが適用されるということです。 なお推移的(transtive)とは言葉として??って感じでしたが、数学用語なんですね。wikipediaで説明を読むとなるほどなーという感じです。 具体的な事象 ある時、Pureeのバージョンアップ(3.3.0 -> 4.1.0)したところ、releaseのみビルドがfailしました。理由はP

    気をつけたいGradleの推移的依存関係とその解決 - Qiita
  • ESLint 設定を Glob ベースでがっつり書き直した - Qiita

    Prettier や TypeScript を使うようになって、3年前に構築してぼちぼち保守してきた自分用の共有設定 eslint-config-mysticatea をそのまま使えないことが増えてきました。また、1年ほど前に Glob ベースで設定できるようになっている ので、この際がっつり書き直すことにしました。 ついでに、ESLint 共有設定を作る際のプラクティスのようなものがまとまっていないと感じたので、まとめてみます。改めて整理してみると、当にバッドノウハウの塊だなぁ...。互換性に縛られずリライトしたいですね...。 新しい共有設定の紹介 新しい設定は @mysticatea/eslint-plugin にあります (eslint-config-mysticatea ではない)。

    ESLint 設定を Glob ベースでがっつり書き直した - Qiita
  • tmux v2.9 マイグレーションガイド 〜 tmux をv2.9 に上げたらinvalid option エラーが出た - Qiita

    tmux をv2.9 にアップグレードしたら出たエラー tmux をv2.9 にアップグレードすると以下のようなエラーが出るようになりました。 /home/your-name/.tmux.conf:9: invalid option: pane-active-border-fg /home/your-name/.tmux.conf:10: invalid option: message-bg /home/your-name/.tmux.conf:12: invalid option: status-right-attr /home/your-name/.tmux.conf:13: invalid option: message-fg /home/your-name/.tmux.conf:14: invalid option: message-command-bg /home/your-na

    tmux v2.9 マイグレーションガイド 〜 tmux をv2.9 に上げたらinvalid option エラーが出た - Qiita
    moqada
    moqada 2019/06/13
  • アーキテクチャの「なぜ?」を記録する!ADRってなんぞや? - Qiita

    5月のThoughtWorksのTechnology RadarでもADOPTされたADRという手法について、面白かったので、ざっくり自分なりに調べたメモです。 Technology Radarでは以下のように述べられています。 多くのドキュメントは、読みやすいコードとテストに置き換えることができます。しかし、進化的アーキテクチャでは、将来のチームメンバーの利益と外部の監督のために、特定の設計上の決定を記録することが重要です。Lightweight Architecture Decision Recordsは、重要なアーキテクチャー決定を、そのコンテキストおよび結果と共に取り込むための技法です。これらの詳細は、WikiやWebサイトではなくソース管理に格納することをお勧めします。そうすれば、コードと同期したままのレコードを提供できるからです。ほとんどのプロジェクトでは、この手法を使いたくな

    アーキテクチャの「なぜ?」を記録する!ADRってなんぞや? - Qiita
  • Nuxt.js(Vue.js)とGoでSPA + API(レイヤードアーキテクチャ)でチャットアプリを実装してみた - Qiita

    概要 Nuxt.js(Vue.js)とレイヤードアーキテクチャのお勉強のために簡単なチャットアプリを実装してみた。 SPA + APIと言った形になっている。 機能 機能はだいたい以下のような感じ。 ログイン機能 サインアップ機能 スレッド一覧表示機能 スレッド作成機能 ログインしたユーザーは誰でもスレッドを作成できること コメント一覧表示機能 スレッドをクリックすると、そのスレッド内のコメント一覧が表示されること スレッド内でのコメント作成機能 ログインしたユーザーは誰でもどのスレッド内でもコメントできること スレッド内でのコメント削除機能 自分のコメントのみ削除できること ログアウト機能 コード コード全体はここ コードは一例でもっと他の実装や良さそうな実装はありそう 技術 サーバーサイド DDDに出てくるレイヤードアーキテクチャをベースに以下の書籍や記事を参考にさせていただき実装し

    Nuxt.js(Vue.js)とGoでSPA + API(レイヤードアーキテクチャ)でチャットアプリを実装してみた - Qiita
  • typelessというReact向け状態管理ライブラリがめっちゃいい - Qiita

    typelessというreactの状態管理ライブラリが非常に良いので紹介します 2019/10/24: 入門記事 書きました What is typeless? react+typescriptで使う前提のreduxラッパーライブラリ。reduxが抱える以下のような課題を解決する 異常に多いボイラープレートコード 重複した型注釈 大量の依存ライブラリ 欠如したコーディングガイドライン これらの課題を踏まえて以下のコンセプトでデザインしている TypeScriptフレンドリー 実用に耐えうる機能を全て内包する 容易なモジュール追加 多くのユースケースに対する解決策をデフォルトで提供 *参考: https://typeless.js.org/introduction/motivation reduxの抱える課題について ドキュメントのmotivationの項で書かれていることは多くの人が課題を

    typelessというReact向け状態管理ライブラリがめっちゃいい - Qiita
  • ぼくたちのかんがえたさいきょうのi18n国家

    記事は下記のtweetから始まるスレッドに触発され、@qnighyや@na4zagin3からアイディアを拝借して書いた。 i18n力が最強の国は国内に複数の言語があり、そのうちいくつかは他国でも使われている言語の方言で、1バイト文字での代替表記が困難で、歴史的にISO-2022ベースの文字コードとUnicodeと独自エンコーディングが混在していて、フリガナなどの特殊な組版規則があり、右書き左書き縦書きを併用し、 — Masaki Hara (@qnighy) 2018年8月6日 皆さんのおかげで最強のi18n国家が建設されつつある。一瞬で滅びそう — Masaki Hara (@qnighy) 2018年8月6日 長い前置き ソフトウェアのi18nは難しい。自文化では当たり前と思っていてハードコードしてしまった仮定が崩れて、大幅な再設計を余儀なくされるからだ。気づいて再設計できればまだ良

    ぼくたちのかんがえたさいきょうのi18n国家
    moqada
    moqada 2019/03/12
  • i18nの書き方 from JavaScript - Qiita

    続編と、コード自体ではなく、何をすればいいかを書きましたAmazonに見るi18n -「国際化対応」とは何を変える事か Webサイトを多言語化する 最近多言語化に関する仕事をしている関係でi18n(l10n)用のライブラリを色々と見たので、 i18nライブラリによくある使い方を紹介します。 とは言ってもほとんどのライブラリは同じような書き方をするのでJavaScriptを例にします。 ライブラリ一覧 書き方の紹介として使用するものはawasome-javascriptにあるものと、他に気になったものを選びました。 ただし、この記事の目的は「書き方」を紹介するもので「ライブラリ」を紹介するものではありません。 動くことは確認しましたがどのくらいまともに動くかはチェックしていないのでご注意ください。 Polyglot Airbnbが公開するシンプルなライブラリ i18next 色々な環境やフレ

    i18nの書き方 from JavaScript - Qiita
  • 我が名は神龍……どんなテストもひとつだけ自動化してやろう - Qiita

    『我が名は神龍……どんなテストもひとつだけ自動化してやろう』 じゃ、じゃあ!このブラウザテストを自動化してください! Chromeで https://kids.yahoo.co.jp/ にアクセスして 検索ワードに ねこ と入力して さがすをクリックして 検索結果にネコ - Wikipedia が含まれていることを確認して 検索結果に 買い方 を追加して さがすをクリックして 探しているのは「の飼い方」?と表示されることを確認して クリックするとの飼い方で再検索されて 検索ボックスを不倫で上書きして さがすをクリックして このページは表示できませんと出ていることを確認 『よかろう……たやすい願いだ』 まずはライブラリのインストールと初期設定をしてやろう…… # [ライブラリのインストール] # CodeceptJSとPuppeteerをインストールします。nodeとnpmが必要ですので

    我が名は神龍……どんなテストもひとつだけ自動化してやろう - Qiita
  • コーディング用フォント「Fira Code」を使おう - Qiita

    ここ一年ほど、Fira Codeというオープンソースのコーディング用フォントを使っていて、Font Liguatureを使った==や'>='の表示が、慣れると等号関係が非常にわかりやすくなり、とても気に入っています。特にJavaScriptTypeScriptなどで===と==の違いや、!==と!=の違いを際立たせてくれるので、これらの言語を書く機会がある人は試してみる価値があると思います。 記事では、そんなFira Codeと、実際にエディタやIDE(個人的にエディタはVSC、IDEはIntelliJを使っています)への設定方法を紹介します。 Fira Codeって? Fira CodeはFont Ligature(日語では合字というそうです)を使ったコーディング向けのフォントで、オープンソースで開発・提供されています。以下の公式のレポジトリ画像を見るとわかるのですが、比例関係(<

    コーディング用フォント「Fira Code」を使おう - Qiita
  • TypeScript on ESLint の未来 - Qiita

    The future of TypeScript on ESLint:https://t.co/PTCWKWN22s — ESLint (@geteslint) January 18, 2019 ESLintTypeScript サポートの今後について、公式にアナウンスがありました。 要点をまとめると、 TypeScript チームが TSLint から ESLint に切り替えていくと発表したよ。 ESLint チームと TypeScript チームが協力して開発を進める場として、typescript-eslint プロジェクトを開始したよ。 既存の部品は新しいプロジェクトの org に移動するよ (typescript-eslint-parser は @typescript-eslint/parser になる、等)。 という感じです。 以下は公式アナウンスの翻訳です。 数週間前、

    TypeScript on ESLint の未来 - Qiita
  • 読みやすいコードを書くために - Qiita

    この記事は、社内向けに書いた資料を公開の許可を得て加筆修正したものです。 記事中の具体例やサンプルコードはJavaScript/TypeScriptで書かれていますが、内容自体は言語にかかわらず使えます。 同僚の @shisama にも手伝っていただきました。 はじめに 命名について 条件式について 関数について 変数・定数について コメントについて 2020/11/02 ついに完結! はじめに 読みやすいコードは、コメントがなくても文章を読むように理解できます。 逆に、読みにくいコードはコメントがあってもさっぱり意味がわかりません。 文章を読むように理解できるコードを書くために普段気をつけていることや、コードレビューの際に重点的に見ているところをまとめました。 普段から読みやすいコードを心がけている方にとっては何も目新しい物はなく、当たり前に意識しているであろうことばかりです。 特にプロ

    読みやすいコードを書くために - Qiita
  • GitHubのIssue・Pull Requestのテンプレート機能を使おう - Qiita

    GitHubにIssueとPull Requestのテンプレート機能がつきました。("Issue and Pull Request templates" - GitHub)とても便利な機能なので、みなさんも使ってみてください。 ※記事は公式の日語ドキュメントが作成される前に作成され、メンテナンスされていません。ぜひ公式ドキュメントの方をご覧ください。 ▼ 「公式ドキュメント:テンプレートを使用して便利な Issue やプルリクエストを推進する」 ---- 以下いつか消します ----- ファイル配置場所 リポジトリ直下、もしくは.githubフォルダーへ特定の名前がついたファイルを配置することで、Issueを作成するときや、プルリクエストを行うときの説明テキストのテキストエリアに、自動でテキストが挿入されます。 ISSUE_TEMPLATE.md - Issueを作成するときのテンプレ

    GitHubのIssue・Pull Requestのテンプレート機能を使おう - Qiita
  • プラットフォームの画面遷移デザインからReact Nativeのナビゲーションを考える - Qiita

    目的 React Nativeのナビゲーション(画面遷移)ライブラリは、まだデファクトと言えるものがない状態です。(公式ではreact-navigation推し) そこで、そもそもiOS/Androidアプリに求められるナビゲーションの要件は何かを再調査し、その上でライブラリ選定を行おうと考えました。 (筆者はWebは得意ですがアプリエンジニアではないので、もし間違っている事があればご指摘ください。) iOS ナビゲーションについてはココにまとまっています。 People tend to be unaware of an app’s navigation until it doesn’t meet their expectations. Your job is to implement navigation in a way that supports the structure and

    プラットフォームの画面遷移デザインからReact Nativeのナビゲーションを考える - Qiita
  • ReactNativeでiPhoneXに対応する方法まとめ - Qiita

    iPhoneX対応方法について調査しましたのでまとめておきます。 SafeAreaView react-native v0.50.0 - SafeAreaView v0.50.0のリリースに含まれました。 親に当たるComponentをWrapして使います。 react-navigation v1.0.0-beta.16 react-navigationも既に対応しています。 そうは言ってもバージョン上げるの辛い、、という方には以下。 react-native-device-info react-native-device-info こちらでデバイス名を取得することができます。 ただし、注意点がありましてシミュレーターはデバイス名が Simulator となってしまう為、開発の際は実機を用意しなければなりません。 論理解像度を取得する apple developer - Displays

    ReactNativeでiPhoneXに対応する方法まとめ - Qiita