利用手順 CakePHP3新機能 View Cell の利用手順 Cellの使いどころについて メリット CellはTemplateから呼び出せる都合上、 Controllerのアクションへ記述を追加することなく画面にデータと結びついた表示を追加できます。 これは既に複雑化しているControllerをに対する変更のリスクを避ける、非常に有効な方法です。 利用範囲はReadに留める しかしアクションのコードを汚さなくて済むというメリットの一方で、デメリットも勿論存在します。 それは__責任範囲をCRUDのうちReadのみに留めておかないと、Controllerがより一掃汚れてしまう__という点です。 Cellでフォームを追加した場合、Cellの存在を知らなくて良いはずのControllerのアクションがその保存を担います。 ReadとCreate/Updateでアクションを分けていたとして
はじめに 使い方を学ぶのに、プロジェクトトップページの説明 と "Introduction to nom: a parsing framework written in Rust" という英語記事が参考になりました。 ここでは上記英語記事に倣って Hello, world! から始めつつ、簡単な計算機の例を解説します。 執筆時点では Rust は 1.13 で、nom は 1.2.4 です。 nom では楽に記述できるようにするためにマクロが多用されており、ソースコードを読むことでマクロの勉強になります。Rust のマクロの記述方法については「Rustのマクロを覚える」という記事を書きましたので参考にしてください。 特徴 lex & yacc (flex & bison) などと違い、書式ファイルを別に用意することなく、Rust のソースコードの中にルールを記述してパーサ関数を生成します。
はじめに この記事はGo (その3) Advent Calendar 2016の18日目の記事です。 最近Goの勉強がてら、とある社内向けWebサービスのAPIを叩くCLIツールを書いてます。 有名どころのWebサービスならたいてい既に誰かがSDKなりCLIツールを作ってたりするので、それを使ればよいと思いますが、クローズドな社内向けのWebサービスとかだと、まぁ欲しい人が自分で書くしかないですね。 で、簡単なプロトタイプが動くようになったので、このあたりで覚えたことを整理してまとめてアウトプットしておこうかなと思います。 内容的には サブコマンド形式のCLIツールを作り方 spf13/cobraの使い方 viperと連携した透過的な設定ファイルの読み込み version番号の埋め込み、Makefile pkg/errorsによるエラーの伝搬、contextを使ったタイムアウト 標準のne
以前こちらの記事で、Alamofireを読んでいて気づいたSwiftの便利な書き方についてご紹介しました。 Alamofireから学ぶSwift実践テクニック 今回は他のライブラリから、気になった書き方をご紹介したいと思います。 追加可能なenumのように使えるstaticプロパティ ライブラリ名 SwiftyUserDefaults 内容 SwiftyUserDefaultsはUserDefaultsを便利に使うためのライブラリです。 キーの定義とsubscript引数の入れ方に特徴があります。 extension DefaultsKeys { static let username = DefaultsKey<String?>("username") static let launchCount = DefaultsKey<Int>("launchCount") } let usern
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 社内用にまとめた内容の転載。 ココらへんの話をします CakePHP3の値チェックは2段階! ValidationとValidation Provider Application Rules Entityに渡す値のチェック(検証)は2段階で行われる CakePHP3では、従来とは大幅に「バリデーション」の機構が変更されました。 これまでModel::save()やModel::delete()時に暗示的に、もしくは明示的にModel::validate()をした際に走っていたデータの検証が、次のような2ステップに分けて扱われます。 En
再演: 「PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計」 + αという勉強会で、「assertぐらいでエバルんじゃねえ!」というふざけたタイトルで発表してきました。 資料はこちら。 PHP7では内部的にASTを作るようになりまして、それをPHP側から使えるようにするphp-astというC拡張があります。これを使って型推論つきの静的解析をするツールがPhanです。 Phanでは未定義変数や型に関する間違いを警告してくれるのですが、そういう明らかなバグの他にも自前のプラグインを作ってエラーをチェックすることができます。 スライドの趣旨としては、assertの話から入るものの、assertのことが主題ではなく、Phanを使ってコードの自動チェックを充実させようという内容です。 Phanプラグインの作り方 Phanプラグインの書き方は一応ドキュメントがあるのですが
まだやってます slim 楽でいいすね。ちょっとした便利rest-apiなんかチョコチョコっと作れるのでいいすわー。 Visual Studio Codeでデバッグしたい 仮想環境vagrantに入ってvi でコード編集するのが面倒なのでnfsマウントしたvagrantのディレクトリ下にslimおいて・・・とwindows側でVisual Studio Code使って編集してますがなんか面倒になったわけですよ。xdebug使ってリモートデバックするまでもないのでxampp立ち上げてローカルでデバッグする環境をさくっと作ってみます。 前提と今回のレシピ ・その1で、Vagrant環境にPHP7.0とslim3色々、+ Vagrant環境にxdebugを設定す(今回) ・Windows環境にXAMPPいれる ・Visual Studio Code + 拡張モジュール PHP Debug いれる
class PageController extends AppController { public function initialize() { $this->User = TableRegistry('User'); $this->Company = TableRegistry('Company'); } public function index() { if ($this->request->is('post')) { // Validation実行 $user = $this->User->patchEntity( $this->User->newEntity(), $this->request->data['User'] ); // Validation実行 $company = $this->Company->patchEntity( $this->Company->ne
2016年ももうすぐ終わり。 なので今年いいなと思ったマイナーっぽいライブラリを紹介していきます。 地味に便利系が多いかも。 RxSwift RxとはReactiveX(Reactive Extensions)のSwift実装です。他にもRxJavaやRxJSなど各言語や各プラットフォーム用のRxがあります。 observableなどの考え方が面白いなと思い今コレを使って何か作ろうかと思ってます。 最近注目されてるであろうライブラリです。 Qiitaでもたくさん記事があります。 他にもRxSwiftと一緒に使うことができるライブラリなどもあります。 RxRealmなどの有名ライブラリなどが対応しています。 RxSwift Community PermissionScope 画像のように簡単に通知や位置情報の使用の許可などを取ることができます。 AsyncKit 有名かもしれない。 これは複
プロローグ 大学入学祝いのパソコンは12-inchのMacBookを選んだ。 USB Type-Cのこととかスペックが低いこととか気になったけど、もう見た目がかっこいいからこれに決めた!ってなった。振り返ってみれば、この時に自分が好きでいられるパソコンを買ったことはとてもいい選択だったように思う。 パソコンを買ったら、もう可愛い可愛いMacBookが使いたくて自然にプログラミングを始めようと思い立った。よし、Pythonやろう。そう思っていた。 Pythonの本を買って進めていたのだけど、古い本を買ってしまったので設定などが本通りにうまくいかず、結局やめてしまった。それでも心の何処かにプログラミングしたいなという思いがあり、数ヶ月後にとうとうSwiftの勉強を始めたのだった。 なぜSwift? 僕がSwiftを触り始めた理由は「自分のiPhoneで動くアプリが作りたかったから」である。 i
Ruby on Rails Advent Calendar 13日目です 注意 FFIを初めて使ってみたネタレベルなので本番でやってはいけません。 threadの処理がかなりまずい気がします helixやruruは使っていません。使ってみたいです。 .trb形式でのinline rustも使ってないです。 モチベーション 今年の9月から新しい会社に転職し、 railsを使い始めました。 その前はjava書いていたので、嬉しさ反面、並列処理まわりで少し不満もあります。 rubyを書き出してGiant VM Lockという言葉を初めて知ったのですが、rubyのthreadって実際はIO系の処理しか並列で動かせないので、なんとも... たとえばcontrollerでなにか処理をしたあと、httpレスポンスを先に返して、バックグラウンド処理でメールやslackに処理を飛ばす処理は簡単には書けません
はじめに みなさんはGAE/GoのSDKがどうやってコードをビルドしているのか知っていますか? 私は正直ふわっとしか理解できておらず、きっと小人さんがビルドしてるんだろうなくらいに思ってました。 当然、小人さんじゃなくて、どこかにgoapp buildとかを呼んでいるコードがあるんだろうとは思っていましたが、どうやらgo-app-builderというツールがそれをやっていることを知ったので、調べてみることにしました。 今回は、ソースコードを読んでいく過程で分かったことをまとめたいと思います。 なお、ここではSDKのバージョンはappengine-1.9.48を使っています。 ソースコードはどこにあるのか さて、go-app-builderはどこにあるんでしょうか。きっとSDKのディレクトリのどこかです。 実はSDK以下にあるgorootの中に入っています。
#PHPStorm上でPHPUnitを実施するメリットとは? PHPで開発した関数やクラスを単体テストするためのフレームワークとして「PHPUnit」があります。 PHPUnitは、一度テストのクラスを作成しておけば、あとはテストを自動化して繰り返し実行できるようになるので、人力で動作検証するよりも実装ミスやエラーの発見がしやすくなります。 単体テストフレームワークの選択肢として、以前はSimpleTestが主流でしたがバージョンアップが遅かったり、実行速度も遅かったりして、PHPUnitへの乗り換えが進んでいます。 PHPUnitはテストフレームワークの中では導入コストが低いので、PHPアプリのテスト自動化を検討している人はまずはPHPUnitの導入をおすすめします。 そして、PHPStorm + Vagrant環境で開発している人は、わざわざVagrantゲストマシンにログインせずとも
$ ab -n 1000 -c 100 http://kusanagi-laravel.jp/ Server Software: nginx Server Hostname: kusanagi-laravel.jp Server Port: 80 Document Path: / Document Length: 1023 bytes Concurrency Level: 100 Time taken for tests: 2.474 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 2011992 bytes HTML transferred: 1023000 bytes Requests per second: 404.25 [#/sec] (mean) Time per request: 247
iOSアプリ開発わけがわからない 僕は、以前までサーバーサイドのエンジニアをやっていたのですが、今年の6月から突然、SwiftでiOSのアプリ開発をすることになりました。そのときに、最初に思ったのがこの感想です。 iOSアプリ開発わけがわからない。 巷では、「簡単に作れるiOSアプリ!」、「10分でアプリを作ろう!」などの記事で溢れていますが、敷居が低く見せつつも、実はハマリポイントが多いです。 今、振り返って、過去の苦しんでいる自分に言ってあげたいことを今回まとめました。 1. 何かがおかしい。うまく動かない。 デバッグ方法を知ろう ブレークポイント ブレークポイントを貼ることによって、処理を途中で止めることが出来ます。 そして、その際に変数に入る値を確認することがあります。 ここまでは、他のIDEと同じだと思うのですが、値を見るのに工夫が必要です。 コンソール上で、po オブジェクト名
はじめに DockerにGolangの環境を閉じ込めたときデバッグどうするの?と思ってなかなか情報を集められなかったのでまとめます。 検証環境 ホスト側 Windows10 + Boot2Docker + VisualStudioCode Sierra + Docker for Mac + VisualStudioCode コンテナ側 golang:onbuildを使用(執筆時点ではgolang 1.7) Golangのデバッガについて VisualStudioCodeではDelveを使うようなので、Delveを使います。 ドキュメントやissuse見てるとリモートデバッグもサポートしていて、もしかしてDockerもいけるかもってところが発端。 Dockerのリモートデバッグについて リモートデバッグが可能なようで、こちらをベースにGolang用に書き換えます。 Live Debuggin
初めまして。マネーフォワードでフロントエンドエンジニアをしている高山です。 Money Forward Advent Calendar 2016と言う事なんですが、 Advent Calendarを書くのが今回初めてでもあり、Qiitaに投稿するのも初めてだったりします。 「え。なに、アウトプットしてないの」と、思われがちですが、Web帳と言う意識の低いゆるいブログをかれこれ6年程書いております。 気になった事とか、メモ程度に不定期に書いていたりします。 また、それとは別に、今年の頭くらいに 新たなCSS Architecture として、APBCSSを提唱させていただきました。 CSS Architectureが、「お。良いなぁ。」と思った方は是非導入して頂ければ幸いです。 と言う訳で、自己紹介はそのぐらいで、今回はタイトルである通り、CSSでもなく、JavaScriptでもなく、Rub
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く