1日1%成長するブログ

毎日成長するために仕事/プライベートで得た学びをアウトプットするブログです

ソフトウェアエンジニアが価値を出すためには毎日どうやって過ごせばよいのか?

最近仕事をいかに楽しむか?をテーマに色々考えてます。もうかれこれ6年近くエンジニアをしてきているので、ただコードを書くことだけに楽しさを感じられなくなってきたんですよ。 特にフリーランスをやっていると、基本的には手離れの良い作業系の仕事が任…

Webアプリ開発プロジェクトの開発開始までに行う5つのステップ

1. 企画書を作成する プロジェクトの目的と何をするか?を説明する資料 一人で企画を考える場合とチームで考える場合だと、 やり方が全く異なるので、企画段階の話は別記事でまとめたいと思う。 2. ワイヤフレームを作成する 企画書でやることが決まったら、…

毎日の仕事を楽しむためのモチベーションマネジメント

仕事って人生の大半の時間を占めてるわけですが、なかなか楽しむのって難しいですよねー。 締め切りに間に合わせることに必死で、楽しむ余裕なんてないやい!って状態に陥ることよくあります。 でもどうせなら日々の仕事を楽しみたい!という訳でどうすれば…

リモートワークでチーム開発する時に便利なツール・ドキュメントまとめ

Webサービスをチームで開発する時に便利だなと思ったツールや、ドキュメントをまとめてみました。 これからプロジェクトを始める時の参考にブックマークして使ってもらえると、嬉しいです。 プロジェクトの説明資料 Googleドキュメントが多いです 作る目的や…

幸せを毎日感じて生きるために大切な3つのこと

突然ですが皆さんは今幸せですか?「俺は幸せだー!」って毎日感じながら生きている人の方が少ないんじゃないかなと思います。 自分はプライベートも仕事もうまくはいっているのですが、 幸せを毎日感じて生きてはいないなと感じていました。 そこでどうした…

ActiveRecordのEnum型のデータをJavaScriptから保存する

enum(列挙型)の使い方 ActiveRecordのenumを使うと、プログラムからは文字列(名前)でアクセスでき、 DBには数値で保存される属性を作ることができます。 Modelに属性にセットできる文字列を列挙する class Post < ActiveRecord::Base enum status: { draft: …

Reactでエンターキーのイベントを取得する方法

onEnterは存在しない Reactがサポートしているイベントは以下の公式サイトに記載されています。 facebook.github.io onClick のノリで onEnterは無いのかな?と探してみてもありません。 ただし、代わりになるキーイベントがあります。 onKeyDownを使う それ…

リモートワークで必須の「よしなに力」を磨くために意識している7つのこと

リモートワークでは各メンバーが異なるスケジュールで仕事をしていることが普通なので、 何度もビデオ電話で打ち合わせするのが難しかったりします。 チャットで質問することもできますが、 すぐに返答が返ってくるわけではありません。 そこで限られた情報…

Webアプリの新規作成の実装パターン

一覧 -> 作成画面に遷移して新規作成 フォームでPOSTして、エラーならエラーメッセージを表示、成功したら一覧画面にリダイレクトさせるというオーソドックスなパターン。 Flashメッセージの実装は必要。作成後にセッションに保存して一覧画面で取得したらす…

JavaScriptのオブジェクトとJSONは別物

JavaScriptのオブジェクトとJSONは見た目がほとんど変わらないので、 違いがよくわかっていなかったのですが、明確に違いがあるようなのでメモしておきます。 JavaScriptのオブジェクト キーがクォーテーション無し & 文字列をダブルクォーテーションで囲む …

WebpackでReactを本番反映する時に行う設定

webpackの各種プラグインを導入 DefinePluginでprocess.env.NODE_ENVを置換する 特定の文字を任意の文字に置き換えることのできるプラグインです。 たとえば、 //webpak.config.js plugins: [ new webpack.DefinePlugin({ 'process.env':{ 'NODE_ENV': JSON.…

ReduxのProviderコンポーネントとContainerコンポーネントを理解する

Providerコンポーネント react-reduxが提供するReactコンポーネント 唯一Storeを持つことができるコンポーネント 配下のコンポーネントにStoreに保持するstateやdispatcherを渡す役目 Reduxでは1つのstateでアプリケーションの状態管理をするため、アプリケ…

CSSで記号を実装する

今回は文字の前後に記号を追加したい。 CSSの疑似セレクタ(:before, :after)を使えば要素の前後に値を表示できます。 値を指定するには疑似セレクタのcontentプロパティを使う。 IE7以下は未対応らしいですが、今回は無視しています。 contentプロパティで表…

Objective-CのAppDelegate.mって何をしてるの?

アプリを作った段階でデフォルトで作られるファイルの一つ。アプリ全体のライフタイムイベントを管理するためのクラス application: didFinishLaunchingWithOptions アプリが初めて起動した時に呼び出される application:applicationWillResignActive アプリ…

Objective-Cの基礎的文法の備忘録

変数 変数の型 変数名: int num = 100; int num; num = 100; データの種類 int: 整数 float: 小数点つきの数値 BOOL: YES/NOに使う 変数には数値しか入らない ポインター変数 ポインター変数とは「メモリ上のオブジェクトを指し示すアドレス」の数値が入って…

アジア・オセアニアのビザが必要な主な国まとめ

アジア 香港 90日以内の観光は不要 韓国 90日以内の観光は不要 台湾 90泊91日以内の滞在は不要 フィリピン 21日以内の滞在は不要 シンガポール 2週間以内の観光滞在は不要 インド 必要 ブルネイ 14日以内の滞在は不要 マレーシア 90日以内の観光滞在は不要 …

ReactNativeのAndroidで画面遷移を実装する

まずAndroidアプリの画面遷移の実装方法を理解してないと実装できないので、確認していく。 Androidアプリでの画面遷移の方法 複数のアクティビティを作っておき、インテントという機能を使うと遷移できる そもそもアクティビティとは? ユーザーが実際に目…

moment.jsでタイムゾーンを考慮して特定日の始まりと終わりを取得する

JST(日本標準時)で指定日の始まりの日時文字列(RFC3339形式)を取得 //2017-08-26T00:00:00+9:00 moment.tz('2017-08-26', 'Asia/Tokyo').startOf('day').format(); UTC(協定世界時)に変換すると、2017-08-25T15:00:00+0:00になる JST(日本標準時)で指定日の…

Golangで特定ファイルのテストのみ実行する

カレントディレクトリにあるテストを実行 ENV=test go test パッケージを指定 ENV=test go test パッケージ名 特定テストのみ ENV=test go test -run TestXXX 特定パッケージの特定テストのみ ENV=test go test パッケージ名 -run TestXXX

gitで特定コミットで変更した内容を確認する

ファイル名のみ git diff --stat [前のコミットハッシュ] [次のコミットハッシュ] 変更内容 git diff [前のコミットハッシュ] [次のコミットハッシュ]

よく忘れるJavascriptの正規表現のメモ書き

日付を確認する正規表現を元によく使う表現をメモしておく /^\d{4}\-\d{2}\-\d{2}$/ ^ 入力の先頭文字にマッチする /^A/はBACにはマッチしないが、ABCにはマッチする \d 数字にマッチする [0-9]に相当する {n} 直前の文字がn回出現するものにマッチする \d{4…

Vue.jsとVueValidateのよく使う機能のメモ書き

Vue.js 代表的なオプション el: 既存DOMにVueインスタンスをマウントする elを指定しないで$mountで new Vue().$mount(“#app”)のようにも書ける methods Vueインスタンスに組み込まれるメソッド vm.plus()のように呼んだり、VueインスタンスをマウントしたDO…

IOS実機(開発中)のクラッシュを解析する手順

Firebaseでプッシュ通知を実装する時にIOSアプリ起動したらクラッシュすることがあったので、その解析手順。 クラッシュログの取得 Window - Devises - view Device Logs 問題のクラッシュのログをコピーペースト 以下記事を参考にクラッシュログを解析する …

ReactNativeでIOS/Android実機でプッシュ通知を試すハマり所まとめ(随時更新)

実機ビルドでハマる所(IOS) SigningでTeamでログインしていない error: Can’t find ‘node’ binary to build React Native bundle nodeのパスを設定 Signing for XXX_Test Unable to resolve module immtable yarn add immutable React/RCTBundleURLProvider.…

人事と労務の違いって?

最近、労務関係の仕事に触れる機会が多いです。 よく聞きはしますがイマイチよくわかっていなかったので、意味をまとめました。 人事と労務 人事も労務も会社の「人」に関わる業務。 人事は「社員個人」を対象としており、労務は「会社全体」を対象としてい…

ReactNativeの実機ビルドでunable to load script from assets index.android.bundleになる時の対処

以下手順でOK mkdir android/app/src/main/assets react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res 再ビル…

MacでAndroidの実機ビルドする時の最低限の手順

実機のOSバージョンと同じAndroid SDKをインストール Windowsの場合のみGoogle USB Driverが必要 実機側のUSBデバッグ設定を有効にする 接続した実機をクリックしてAndroid Studio側からビルドボタンをクリック

ReactNativeのbuild.gradleって何?

build.gradle Gradleのビルドスクリプト gradleコマンドを実行するとカレントディレクトリのbuild.gradleを探して実行する Gradle 動的スクリプトGroovyを使ってビルドスクリプトを記述することの出来るビルドツール Groovy Javaに近いスクリプト言語 Rails…

Golangでネストした構造体を初期化する方法

次のようにネストした構造体が存在する場合に、 Golangでは初期化の方法が非常に面倒くさい。 type User struct { ID int Name string Account struct { Password string AccessToken string } } func main() { user := User{ ID: 1, Name: "Masaru", Accoun…

ReactNativeでAndroidのシミュレーターを起動する

Androidの場合は事前にAndroid Virtual Deviceを追加しておく必要がある。 AVDマネージャーを起動する Android Studioを起動して[Tools] > [Android] > [AVD Manger] gyazo.com AVDを追加して起動する 端末は色んな種類がありますが、自分はNexus 5 API23を…