TypeScriptのindex.tsってなに?って思ったのでメモ
Barrelというらしい
Barrelを使わない場合
- demoディレクトリに3ファイルある場合を想定している
// 3つのファイルそれぞれでexport // demo/foo.ts export class Foo {} // demo/bar.ts export class Bar {} // demo/baz.ts export class Baz {}
import { Foo } from '../demo/foo'; import { Bar } from '../demo/bar'; import { Baz } from '../demo/baz';
それぞれでimport / exportしているのでつらい🥺
Barrelを使う場合
- demo/index.ts
// まとめてexport export * from './foo'; // re-export all of its exports export * from './bar'; // re-export all of its exports export * from './baz'; // re-export all of its exports
import { Foo, Bar, Baz } from '../demo'
まとめてexport / importできてすっきり🙋♂️
以上です。あざました〜〜
JIRAとSlackを連携させる
会社でJIRAを用いてプロジェクト管理をしているので、個人開発でもJIRAを用いてプロジェクト管理することにしました。
SlackにJIRAの連携をしたかったので、備忘録です。 手順としては、以下となります。
- SlackにJIRAアプリケーションを入れる
- SlackのJIRAアプリケーションから、認証したユーザーの保持しているJIRAプロジェクトを選択して対象のslackチャンネルを選択
- 連携設定を変更
ではやっていきましょう〜
SlackにJIRAアプリケーションを入れる
まずSlackにJIRAアプリケーションを入れます。Slack左下のappを選択
JIRAで検索。僕はJIRA Cloudを使用していたので、そちらを選択しました。
ブラウザで対象のSlackの管理画面に遷移するのでインストールをしましょう。
JIRA(Atlassian)の認証
Slack内で /jira connect
コマンドを打ちましょう。
Atlassianに認証していなければログイン画面に遷移すると思うので、そちらからSlack連携したいJIRAプロジェクトに入っている Atlassianユーザーでログインしましょう。
再度 /jira connect
を行うと対象のJIRAプロジェクトと、Slackのチャンネルを選択できるかと思うので選択すればSlack連携できます。
連携設定を変更
デフォルトの設定だと、JIRAのカードを移動した際などに通知が飛ばないので、必要あればJIRAのSlack設定から変更しましょう。
以上です。あざました〜〜〜〜
未経験からエンジニアになって4年目になったので、ちゃんと読み直したい本達のメモ
2018年の4月くらい(たしか)にエンジニアになり、早いものでエンジニアになって4年目になりました。
非エンジニアの期間とエンジニアの期間が5:5くらいで、ビジネスとエンジニアリングのバランスを評価されることが多いのですが、エンジニアリングも引き続き伸ばしていきたいので読んでいる本、読みたい本のメモをつらつらと書いていきます。 (普段はバックエンドをやることが多いので、バックエンド周りが多いです。)
データ指向アプリケーションデザイン
鬼の用に厚いですが、最近読んでます。 データの扱いを中心として書籍でRDB、NOSQL、分散データベースなどについて歴史的背景から、アーキテクチャ設計の考え方など参考になります。
達人に学ぶDB設計
テーブルを設計を1から解説してくれてます。 DB設計がバックエンドで一番失敗してはいけない場所だと個人的には思っているので一度通読しましたが、また読み直したいです。
Web API: The Good Parts
API設計の名著です。 綺麗なREST API設計のインターフェイスを学ぶことができます。API設計している時や、設計時に意見が割れたとき等、迷ったときに読んでます。
Real World HTTP
Webを支える技術の強めのやつです。 積ん読しているのでよみます。
Real World HTTP 第2版 ―歴史とコードに学ぶインターネットとウェブ技術 | 渋川 よしき |本 | 通販 | Amazon
ポエム
言語の勉強は、どの言語も毎日書いてれば書けるようになってくるのではないかなと思っており、抽象度の高い設計の本等を意識的に読むようにしてます。
また組織最適された知識や、属人化したコードを書き方を覚えるのは、部分最適化されるかもですが、他の環境になった時に通用しないリスクがあるので、環境に依存しない知識をためていきたいな〜と考えてます。
以上あざました〜。
エイリアスの設定方法
エイリアスとは?
Linux / Macなどでエイリアスを設定する方法について、備忘録も兼ねて書いていきます。
エイリアスとは、偽名、別名、通称などの意味を持つ英単語。ITの分野では、ある対象や実体を、複数の異なるシンボルや識別子で同じように参照できるする仕組みを指す。別名です。
エイリアスとは?ざっくりいうとコマンドにつける別名です。
つまり、コマンドの別名を設定します。
例えば、 bundle exec
と打っていたのを be
と打つだけで実行出来るようにする事が出来ます。
エイリアスのコマンド
alias alias_name='alias_command'
- ~/.zshrc等に追加
- 以下は、設定例です〜。
# alias alias cp='cp -p' alias ll='ls -laG' alias ls='ls -G' alias mk='touch' alias be='bundle exec' alias fl='fvm flutter'
エイリアスの読み込み
source ~/.zshrc
上記の対応で be
とうつだけで bundle install
を短縮できるので、便利です。
ちょこちょこそういうのを対応していくだけで、工数が浮くのでちゃんとやっていきたいです。
Flutter/Flutter.h' file not found のがiOSビルド時に頻発するときの対応
問題
- ビルドしようとうすると以下のエラーが出る。
Flutter/Flutter.h' file not found
al error: 'Flutter/Flutter.h' file not found #import <Flutter/Flutter.h> ^~~~~~~~~~~~~~~~~~~ 1 error generated. Command CompileSwift failed with a nonzero exit code note: Using new build system note: Building targets in parallel note: Planning build
対応
- https://www.yuukinishiyama.com/2021/01/16/flutter-fatal-error-flutter-flutter-h-file-not-found%E3%81%8C%E9%80%A3%E7%99%BA%E3%81%99%E3%82%8B/
- 以下の対応で再度ビルドしたらいけた
rm ios/Flutter/Flutter.podspec flutter clean
Flutterのローカル開発で、APIリクエストがSocketExceptionと怒られたときの対応
事象
- APIリクエストには
retrofit
を使用している -ローカル環境に対してつないでいる、Andoridのエミュレーター - リクエスト時に、
SocketException: OS Error: Connection refused, errno = 111, address = localhost, port = 37922
みたいなエラーになる - ローカルをcurlするとレスポンスが問題なく返ってくる
I/flutter (17987): ╔╣ Request ║ GET I/flutter (17987): ║ http://localhost:3000/api/v1/rooms/1 I/flutter (17987): ╚══════════════════════════════════════════════════════════════════════════════════════════ I/flutter (17987): I/flutter (17987): ╔╣ DioError ║ DioErrorType.DEFAULT I/flutter (17987): ║ SocketException: OS Error: Connection refused, errno = 111, address = localhost, port = 37922 I/flutter (17987): ╚══════════════════════════════════════════════════════════════════════════════════════════
調査
you're running the server locally and using the Android emulator, then your server endpoint should be 10.0.2.2:8000 instead of localhost:8000 as AVD uses 10.0.2.2 as an alias to your host loopback interface (i.e) localhost
対応
# 変更前 @RestApi(baseUrl: "http://localhost:3000/api/v1/") # 変更後 @RestApi(baseUrl: "http://10.0.2.2:3000/api/v1/")
にしたら行けた。謎。 今度原因を調べる。