SpringBoot + h2 + mybatisでHelloWorld

ハンズオン用のメモです 開発環境はIntellij、ビルドツールはgradleです 今回のゴール プロジェクトを新規作成する SpringBootでHello build.gradleを編集する buildscriptを追加する pluginにspringを追加する dependenciesにspringを追加する build.gradle…

RAMLの導入を考える

夜中に眠れなくなってしまったので、なんとなくRAMLの導入について考える RAMLとは YAMLでRestAPIのAPI仕様を作成できるツール 今私がいる環境 java spring boot ddd 何が生成できるの? YAMLから以下を生成できる API仕様書 バリデーションチェック(可能性)…

【SpringBoot】Formクラスのフィールドを値オブジェクトにする

真面目に調べたことがなかったのでメモ ## ポイント ### Formクラス - メソッド名をAPIのキー名と同じにする - セッターへは値オブジェクトを渡す ### 値オブジェクト (NameForm) - 値はコンストラクタで渡す ### その他 Formや値オブジェクトはプライベート…

googleドキュメントにmermaid.jsを書く

googleドキュメントはオンライン上で編集できてとても便利。 そこにmermaid.jsも書きたい!ってことでやってみた。

アクションRPG Day5 衝突

前回はアニメーションをやりました naosim.hatenablog.jp 今回は壁との衝突です Phaserの衝突は優秀で、プレイヤと壁それぞれに衝突する領域を定義したら後は勝手に計算してくれます プレイヤーの衝突定義 プレイヤークラスのcreateメソッドをいじります 何…

アクションRPG Day4 アニメーション

前回はプレイヤーを表示しました naosim.hatenablog.jp ただ動かした時にアニメーションがなかったので今回はそれを追加します アニメーションを追加ためにクマが「右方向に歩く絵」と「左方向に歩く絵」が必要なので、プレイヤーの画像を変更しました prelo…

アクションRPG Day3 プレイヤー

前回はフィールドの表示をしました naosim.hatenablog.jp 今回はプレイヤーを表示して移動させます 画像はいつものenchantのクマです 画像をpreloadで読み込む フィールド読み込みの後に追加します function preload() { // 背景画像の読み込み 16x16のマッ…

phaserでアクションRPG Day2 フィールドの作成

前回phaserのセットアップをしました naosim.hatenablog.jp 今日はフィールドを表示してみます で...いきなり壁... コードをcodepenで書いてたけどcodepenは画像を扱えなかった... ワークアラウンドはあるけど本質的じゃないコードが入るといやなのでjsdo.it…

phaserでアクションRPG Day1

アクションRPGが作りたくなった あとゲームフレームワークのPhaserがバージョン3になってたので勉強も兼ねて開発経過をメモします 初期状態のおまじない var config = { type: Phaser.AUTO, width: 400, height: 400, physics: { default: 'arcade', arcade:…

問題: いい感じの日付取得

下記に月・日を入力するといい感じに日付(年月日)にしてくれる機能がある。 これと同じ機能のメソッドcreateDate()を完成させよ。 メソッドのインターフェースは↓この通り。 /** * @param {number} month 1-12 * @param {number} dayOfMonth 1-31 * @param {…

先輩に「メソッドを実行して結果を変数に突っ込め」と言われたら2

前回の記事でメソッドを実行して変数に突っ込む時の思考を整理しました naosim.hatenablog.jp 「そんなの出来て当然」と思った方も多いと思いますが、実はjavaはそんなに甘くないです ってことで抜き打ちテスト! 以下の問いに答えよ 1. hogeメソッドを実行…

先輩に「メソッドを実行して結果を変数に突っ込め」と言われたら

javaのコーディング中にこんな風に言われた時に、どんなことを考えているのかを整理しておきます

タスクの依存性を表現したタスクボードをmermaidjsで書くと良い

タスク管理の方法としてバックログやタスクかんばん(TODO,DOING,DONEのやつ)を使っていますが、ちょっとツラみを感じています これらの方法はタスクの優先順位が見える意味では良いけど、タスク間の依存関係が見えない 最近やってる案件がウォーターフォール…

【GAS + kotlin】コードを分割してメンテしやすくする

前回、GASをkotlinで開発する方法を書きました naosim.hatenablog.jp この記事で「3万行を超えるkotlin.jsをコードに直接コピペする」と書きましたが、さすがにそれでは辛い 幸いGASは同一プロジェクトのスクリプトを簡単に呼べるのでそれを利用してファイル…

GASをkotlinで開発する方法

ちょっと強引な方法ですが動いたのでメモ 動いたと言ってもhelloworldが出ただけなので、その先に落とし穴があるかもしれない... intellijでkotlinjsのプロジェクトを作成し、コーディングする build.gradle Main.kt ビルド GASでコードを読み込む おまじな…

BLUDITを入れて最初にやったこと

家で作ったものを動く状態でそのまま公開できるサイトが欲しかったので、BLUDITというPHP製でDB不要のCMSを使って作ってみた。今回のサイト構築でBLUDITの初期状態に対していくつか変更を加えたのでその内容をメモしておきます。

spock + mockitoでverifyするときの注意点

mockitoでverifyするときにテストが通らなくてハマったのでメモ

wordpressにバージョン番号を入れたら開発が楽になった

wordpressに機能追加するのは正直つらい... 本番環境で開発できないし、ローカルだと本番DBとの差異がでちゃってデプロイしにくいし... 何故1つのDBにコンテンツとデザインとアカウント情報を共存させてるんだよ... バージョン番号をつけて本番環境で直接開…

Spring + mybatisなコンポーネントライブラリを作成する方法

Spring + mybatisを使った開発用に、DBの自動テスト用ユーティリティを作成しました DbTestUtil https://github.com/naosim/DbTestUtil SQL文をサクッと実行したりできます このユーティリティでは Spring(DI)とmybatisを使ったコンポーネントをライブラリ化…

GithubApiメモ

プルリク周りのメモです (GithubApiを使うたびに毎回調べてる気がしていい加減飽きたので...) セットアップ curlで叩く程なので変数にaccess_tokenをセット token=your_access_token APIレスポンスはjsonなのでjqもインストール brew install jq

【辛み】Chromeの等幅が揃わない

ちゃんとフォントで等幅のRictyを指定して、そのフォントを指定してるのにChromeだけ幅が揃わない atomやsublimeは揃うのに... chrome ↑全角4文字と半角8文字が揃わない atom sublime text なんでや。 追記 firefoxでも揃わなかった なのでhtml的な何かが原…

htmlのテーブルからmarkdownを作る

以前の記事でmarkdownからSQLのcreate table文を作る方法を載せました naosim.hatenablog.jp これを真面目に作ってチームで使おうと思ったら メンバーがDB仕様書をコンフル上で作っちゃったので そこからmarkdownに変換する必要が出てきましたw てことでやっ…

php+sqliteをdockerで動かすメモ

dockerの練習用にphp+sqliteなサーバを作ってみたのでメモ Dockerfile FROM php:5.6-apache RUN apt-get update && apt-get install sqlite3 libsqlite3-dev -y build docker build ./ -t php5_sqlite run docker run -d -p 80:80 -v /Users/fujitanao/git/h…

markdownで書いたテーブル仕様書からsql文を生成する

テーブル仕様書をmarkdownで管理したいって要望があったので作ってみた まだ開発中。markdownから階層構造作るところで多分バグがある サンプルのテーブル仕様書はこんな感じ contract: 契約 contract_state: 契約状態テーブル カラム名 型 NOT NULL 補足 in…

集中したい

最近全然時間がありません 打ち合わせや割り込みがない時間が1日のうちで連続3時間ほしい... 今日の作業 10:00-10:30 ★FREE 10:30-11:30 MTG 13:00-14:00 MTG 14:00-15:00 ★FREE 15:00-16:00 ペア作業 16:00-17:00 MTG 17:00-18:00 ★FREE こんなんじゃ集中し…

jsのクラスってコンストラクタに全部書いた方がよくね?

jsのクラスはこんな感じで書きます class Position { constructor(x, y) { this.x = x; this.y = y; } getX() { return this.x; } getY() { return this.y; } getDistance() { return Math.sqrt(this.x * this.x + this.y * this.y); } } この書き方の辛いと…

マルっとサクッとパラメータを受け取る

最近PHP+slimでAPIをたくさん作ってますがAPIの実装が面倒になってきた たとえばアクセストークンを使って認証的なことをやろうとした場合、IF仕様はこうなる アクセストークンは、リクエストヘッダー、または、GETの場合はクエリーパラメータ、または、POST…

データを保存できるWebAPIを作ったら楽になった

php

最近は無料で使えるナントカ as a serviceが増えてきて、サービスを簡単に作れるようになって楽しい 例えばロジックはheroku + javaで堅牢に作れるし、定期実行はgoogle apps script(以下、GAS)でできる あと足りないのはデータストア てことで自分の身の回…

PHPで1970年からのミリ秒を取得する

サーバサイドをPHP + SQLiteにしてフロントをjavascriptで作るなら、日時はlong型で1970年からのミリ秒にしておいた方が良さそう でもPHPの標準関数でその値を取得する方法がなかったのでメモ 使えそうなものが2つ見つかった 現在日時から取得 $t = (int)flo…

【問題】ゼロ埋め

入力エリアのTODOの部分にプログラムを書いて、下記にある入力に対する出力条件を満たすようにしなさい function zerofill(a, b) { // TODO 実装する。returnするのをお忘れなく } 入力に対する出力条件 入力a 入力b 出力(return) 3 1 '3' 4 2 '04' 5 3 '005…