サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
seri.hatenablog.com
フルNext.jsアプリケーション作成の一環で、DBマイグレーションツールにprismaを使ってみたので、書き方のメモです。 いきなりですが、prismaは細かくDDL文を制御できず、思ったテーブルを作れなかったので、細かくテーブル定義を設定したい場合はTypeORMの方がいいかもしれません。 準備 プロジェクトにprismaをインストールし、初期ファイル(prisma/schema.prisma)を作成します。 $ yarn add -D prisma $ yarn run prisma init schema.prismaの書き方 公式ドキュメントの書き方を参考に、スキーマをschema.prismaに記載していきます。 記載する際の注意点・考慮点は以下です。 providerをmysqlに変更する @db.Timestampではなく@db.Timestamp(0)のように書かないとマ
プロダクトバックログのテンプレートが欲しい これが「さいきょうのPBLだ!」 PBL項目 スクラムでのPBL運用フロー 1. プロダクトバックログリファインメントを実施 2. スプリントプランニングを実施 3. スプリントレビューを実施 4. 繰り返し まとめ プロダクトバックログのテンプレートが欲しい 「プロダクトバックログなんて、そんな何個も作るものじゃないでしょ」 とか思っていたときもあったのですが、ここ数年、公私合わせて、年2、3個はプロダクトバックログ(PBL)を作り、その都度フォーマットを作っていたので、 いい加減(自分のためにも)PBLのフォーマットを決め、テンプレートを用意するようにしました。 これが「さいきょうのPBLだ!」 最強なのかはともかく、現時点で一番わかりやすく運用しやすいPBLのフォーマットは、以下のようになりました。 テンプレートにはGoogleスプレッドシ
アプリケーションのログ出力指針を作ったときに、どんな事を考えていたのかを思い出しながら、 ログ出力指針について書いていきたいと思います。 ログ指針作成にあたって 目的の作成 適用範囲の設定 どんなときログを埋め込むのか?または埋め込まないのか? ログのフォーマットは? ログの保持方法 ログ出力の目的 ログ出力要件 本設計の範囲とするログの種類 ログに記録するべき内容・イベント 認証・アカウント管理や重要情報へのアクセスに関するイベント 出力禁止項目 ログ出力項目 ログフォーマット 出力項目 サンプル ログ出力先 ログファイル一覧 アプリケーションログのローテーション ログの保存期間 ログレベルの利用基準 Stacktraceの出力タイミング 参考 LTSVの活用 終わりに 参考文献 ログ指針作成にあたって そもそもなぜログが欲しいのか?何に利用するのか? これに対する答えを置いておかないと
ちょっと記事を寝かせすぎてしまったのですが、今回は1.3でKotlin本体に入ることが決まったコルーチンのお話です。 WebFluxでJDBCを使うには Schedulers#elasticで対応 この方法の問題点 コルーチン コルーチンの導入 WebFluxのリクエストをコルーチンで処理 Suspending関数を使う関数もSuspendingに ブロッキング処理はSuspending関数で コルーチンとWebFluxでどうなったか WebFluxでJDBCを使うには 以前の発表資料にも記載したのですが、 Spring Boot 2から使えるSpring WebFluxは、Spring MVCと違い、ノンブロッキングなWebフレームワークなので、 ブロッキング処理として作られているJDBCを使うには一工夫必要です。 Schedulers#elasticで対応 解決策としては、(この言い回
2017/12/15追記:gradle buildからJOOQのコード生成を除外 サーバサイドの開発をKotlinで行うために、ここのところ調査・検討を色々していました。 概ね問題なさそうという結論が出たので、それ以外の技術選定をしていたのですが、 O/R Mapperに採用することにしたJOOQをGradleと組み合わせたときに、悩むことが多かったので、 現時点でのやり方と考えを残しておこうと思います。 JOOQ 利用よりも運用が悩ましい Gradleとの組み合わせ 自動生成対象の選定 gradle cleanから自動生成したコードをガード gradle buildからJOOQのコード生成を除外 やっぱり JOOQ JOOQ(juke:ジュークと読むらしい)はJava用のO/R Mapperなのですが、KotlinのDSLもあり、Kotlinからでも(私としては)違和感なく使えるライブラ
Shansible Shansibleは、秋葉原IT戦略研究所のProject ShangriLaでAnime APIが動作するサーバ群を構築するためのプロジェクトです。 Shansibleを利用することにより、VagrantとAnsibleを使って簡単にローカルでAnime APIの動作を確認する環境を作ることができます。 利用方法 基本的にはshansibleをgit cloneしてvagrant upするだけです。 ですが、環境によってはVagrantやAnsibleの不具合に対する対処がいくつか必要になる場合があります。 READMEに判明している不具合への対処方法を記載していますので、上手くいかない場合はご確認ください。 READMEに記載した、利用するVagrantのバージョンが現時点の最新である1.8.5でないのは、1.8.5にはSSHに関する不具合があり、素の設定ではまとも
php-fpmはgraceful restart. そう思っていた頃が私にもありました 以下の公式ドキュメントに「緩やかな (graceful) 停止/起動 機能を含む高度なプロセス管理」と記載があるので、 何の疑いもなくservice php-fpm reloadを叩いたらプロセスが落ちました。。 PHP: FastCGI Process Manager (FPM) - Manual reloadもrestartも終了処理は同じ もちろんこれはreloadだからというわけではありません。 reloadもrestartも、実行するkillコマンドにUSR2オプションは付いています。 付いているのですが、これが期待する動作(プロセスの処理が終了したらkill)になりません。 ググるとすぐ出てくるのですが 以下のバグとして上がっていますが、ずっと放置されているようです。 PHP :: Bug
引き続きShangriLaを例にしていますが、今度はGroovyでGETリクエストの実行と返却されたJSON文字列を処理してみました。 おや、Gradleサイトの様子が・・・! README書くためにGradleのサイトに行ったところ、サイトがリニューアルしていました。 Gradle l Modern Open-Source Enterprise Build Automation - Gradle どうもgradle.comというコミュニティサイトっぽいものを作るから先行登録してね、 みたいなことを通知したいためのようです。 今のところサイトには簡単なGradleの使い方が載ってるぐらいで、 ほとんど情報はなく、このサイトがどうなっていくのかは不明です。 自分としては、ただGradleのインストール手順までの遷移がわかり辛くなったな、と感じただけでした。 なので、インストール手順が書いてあ
最近テストばっかり書いていたので、 いい機会ですし、学んだり、考えたりしたことを、 私がテストを書くときに気にしていることと合わせて、まとめてみます。 あと、今回初めてMockitoとPowerMockを使ったので、 テストはそれらを使う場合にフォーカスして書いてます。 事前準備 関連FWの構成は以下です。 JUnit 4.12 Mockito 1.10.19 PowerMock 1.6.2 バージョンはPowerMockの都合に合わせています。 MockitoUsage13 - powermock - PowerMock is a Java framework that allows you to unit test code normally regarded as untestable. - Google Project Hosting ファイル自体は、以下から「powermock-
久しぶりにブログを書いてみて reinsの紹介をしてなかったことを思い出したので、時間が経ってしまいましたが、ここで紹介します。 手綱を握れ! 前からTwitterで流れてくる気に入ったイラストはちょくちょく保存していたのですが、1)いつからか保存の頻度が増え、iPhoneのサイズを圧迫したり、2)後から誰が描いたものかわからなかったり、3)見てないときに逃してるものがあるんじゃないかと、Twitterを見てる時間が増えたり、ちょっとモヤモヤすることが多くなっていました。 なので、 「画像を自動で保存して、リネームするツールを作ればいいな!」 と思い、機能を考えたのですが、バク管理システムとかも作ってたので、相変わらず手動保存していました。 奇遇ですね 秋葉原の銀座ライオンでオープン日に友達と飲みながらラブライブの話をしていたとき、ふとしたことでTwitterの画像収集ツール作ろうとしてい
「ちょっと聞きたいんだけど」 「この機能何ステップくらい?」 とか、 「今日何ステップくらいコード書いたの?」 とか、仕事でコードを書いていると、上長にコードのステップ数を問われることが多々あります。 個人的には、実コードを見ない人がステップ数から得る情報は何もないと思っていますが、 世の中的には、複雑度とか潜在バグ数とか難易度とか効率とか色々わかるらしいです。すごいですね。 コード量で見積もりも変わるようなので、 リファクタリングで他人が書いたコードを半分にしたりすると、 度々コード量が減ったことで問い詰められたりします。 ・・・やめましょうか、この話。 ともあれステップ数は計りたい ステップ数での見積もりを求められる以上、プログラマはステップ数で見積もれなければいけません。お仕事ですからね。 そんなときに参考になるのは、過去の自分が書いたコードや、機能検証で書いたコードだったりします。
追記(2014/08/27):アップデートによる罠 報告(2019/03/09):アップデートで12のファイルが取得できた場合は、それをインストールして12が使えました 記事を書くきっかけ PCでのBlu-ray再生にドライブバンドルのPowerDVD 10を使っているのですが、 3ヶ月くらい前に突然Blu-rayが再生できなくなった事がありました。 本当に突然というか、昨日まで再生できていた同じBlu-ray Discが再生できなくなるという訳の分からない状態で、ネットで調べてみたのですが、書かれている解決策では解決せず、これもかなり格闘しました。 解決後何日かして、同じ症状が発生していた人をTwitter上で発見し、解決方法を教えたことがあり、あの苦労が無駄にならなくてよかったなぁと満足してしまい、忘却していたのですが、 また同じような症状の発言を見たので、自分が行った対処法を残してお
※コメントを受けてSpock周りの話を修正しました(2014/06/23) GitHub Kaigi 先週GitHub Kaigiに行ってきました。 去年のLLまつり以来の勉強会ちっくなイベント参加だったのでかなり期待していましたし、 実際期待以上に面白かったです。 Rebuildの公開録音聴いてるときの家に居る感はすごかったw 特にはてなブログの開発フローの話とか、バグ管理システムを作ってる身としては色々思うところがあって面白かったです。 (受託開発的にはホワイトボードだけで管理される開発中の情報があると、後でお客さんの調査部門に怒られるかなーとか) いやー他にも色々話を聞いて、バグ管理システム作るの止めようかとも思ったのですが、 作ろうと思ったきっかけの理由はGitHub系のシステムじゃ満たしてくれないので、 利用フローをちゃんと提示することを忘れずに、このまま作ってみようと思います。
Groovy:Repetitive method name/signature for method 'java.lang.Object withFormat(groovy.lang.Closure)' in class 'grails.plugin.databasemigration.DbdocController'. 「あれ?なんか変なエラー出てる・・・」 ある日MacでGGTSを使おうとしたら上記のようなエラーメッセージが複数出て動作しなくなりました。 簡単に原因を書いてしまうと、利用しているGrails(2.3.7)およびGGTSが先頃入れたJava8に対応していないせいだったのですが、普段Eclipse使う系の開発はJStyleの使えるWindowsでやっているので、エラーが出た当時はあまりまじめに対処する気もなく、必要になったらJava7に換えればいいんでしょ?ぐらいの感じでい
お疲れ様です。 使い方の記事が続いてしまって面白味がないかもですが、EclipseからGitHubを使おうとしたとき結構詰まったので、今日はその話をまとめようと思います。 といっても本稿でターゲットにするのはGitBucketです。どちらもEclipseから見たら(1点除いて)同じなので、やり方としては問題ないはずですが、Webサービス上の画面操作は違うのでGitHubを使う場合は・・・「よろしくお願いします!」 また、詰まった点は後ろの方に載せておきます。 手順通りにやれば問題は起きないはずですが、もし詰まったときにでも参考にしてもらえればと。 (↑気力が尽きたのでまた今度追記しておきます) #今回は画像が多いので、続きのリンクから始まります 何はともあれ共有リポジトリを作ろう GitBucketにログインすると以下のような画面になります。 右上の緑色のボタン、「New reposito
このページを最初にブックマークしてみませんか?
『seri.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く