タグ

shin1x1に関するshimookaのブックマーク (71)

  • PHP 8 Attribute シンタックスの変遷 - Shin x Blog

    PHP 8 の新機能の一つ、Attribute の形式が紆余曲折ありながら最終的に #[] となりました。実用上は #[] 形式だけ覚えておけば良いのですが、シンタックスの変遷は興味深いものだったので残しておこうと思います。 Attribute Attribute 仕様の変遷 8.0.0alpha1: <<>> 8.0.0alpha2 8.0.0beta1: @@ @@ の問題 8.0.0beta4: #[] #[] の注意点 さいごに Attribute PHP 8 の Attribute は、他のプログラミング言語によくあるアノテーションです。クラスやメソッド、プロパティ、関数に付与することで任意の処理を追加することができます。PHP では従来 Doc コメントでこれを指定する文化がありましたが、これを言語仕様として実装したものです。 <?php declare(strict_type

    PHP 8 Attribute シンタックスの変遷 - Shin x Blog
  • 誰のためのソースコード? - Shin x Blog

    「誰のためのデザイン?」の旧版と改訂・増補版を読みました。 以前に旧版を読んだのですが、その記憶もあやふやなくらい前だったので、あらためて読み直し、その面白さゆえに改訂・増補版も購入してこれも読み終えました。 Web システム開発を生業としているので、日々ユーザとのインタラクションが発生するプロダクト開発に関わっているわけで、ユーザがどのように製品を認知し、使うかという内容は参考になりました。 それとは別にソフトウェア開発という観点で、ソースコードを読む時に人がどのように認知するのかという点でも興味深いものでした。このエントリでは、自分なりに整理したソースコードと概念モデルについて残しておきます。 ソースコードとメンタルモデル ソースコードの概念モデル 実行モデル プログラマモデル ユーザモデル 誰のためのソースコード? さいごに メモ ソースコードとメンタルモデル ある程度、経験のあるプ

    誰のためのソースコード? - Shin x Blog
    shimooka
    shimooka 2020/01/23
    『読み手』(3日後の自分も含む)
  • 「Kubernetes で構築する PHP 開発環境」を発表しました - Shin x Blog

    2019/12/01 に東京で行われた PHP Conference Japan 2019 - #phpcon にて、「Kubernetes で構築する PHP 開発環境」を発表してきました。 発表資料 サンプルコード: https://github.com/shin1x1/laravel-k8s-dev-sample Togetter: https://togetter.com/li/1438089 Kubernetes を使って、PHP 開発環境を構築するという内容でした。デモでは、Mac に構築した Kubernetes クラスタを紹介して、Mac にあるソースコードを変更すると、Kubernetes クラスタ内で実行している PHP Pod で読み込めるということを紹介しました。PHP 開発では重要なことですね。 開発環境に特化した内容なので、番等で使うときはまた違う点があります

    「Kubernetes で構築する PHP 開発環境」を発表しました - Shin x Blog
  • 独立したコアレイヤパターン - Shin x Blog

    モチベーション 全体 サンプルアプリケーション コアレイヤ サービスレイヤ 口座間送金ユースケース 処理の流れ コアレイヤ サービスレイヤ コアレイヤ対象範囲 DDD スタイル 手続き型スタイル 実装アイデア レイヤでパッケージを分ける コアレイヤの範囲 ポートの種類 DDD スタイルへの一歩目 さいごに 参考 独立したコアレイヤは、アプリケーション実装パターンである。以下のような特徴を持つ。 アプリケーションを、何を実現するのか(What)と、どのように実現するのか(How)に分ける。 What は、コアレイヤに実装する。ユースケースやドメインロジックを実装する。フレームワークやライブラリには依存しない。UI やデータベースからは独立している。 How は、サービスレイヤ(仮)に実装する。フレームワークやライブラリを活用して、ユースケースが要求する技術詳細を実装する。 コアレイヤが必要な

    独立したコアレイヤパターン - Shin x Blog
  • Vue.js + Vuex + TypeScript ファーストインプレッション - Shin x Blog

    日頃は、サーバサイドの開発が主なのですが、その UI として フロントエンドの開発も行うことがあります。最近話題の Vue.js を試してみたのでその感想などを。 前提 これまで利用した構成 Vue.js 構成 雑感 ちょっと試す、がすぐにできる vue-cli が楽 vue ファイル template ディレクティブ scoped css vue-router / Vuex 連携 Vuex mutation を直接呼んで、state を変更 コンポーネントから直接 state を操作 TypeScript Vue.js 入門 さいごに 前提 これまで利用した構成 ベースとして、これまでプロダクションで利用したことがある構成は以下です。いずれも、フォームベースの SPA で、現在も稼働しています。 AngularJS 1.x AngularJS 1.x + TypeScript React

    Vue.js + Vuex + TypeScript ファーストインプレッション - Shin x Blog
  • 13. Do You PHPの現場?(kunit / shimooka) | PHPの現場

    @kunit さん、@shimooka さんと、Do You PHP?、デザインパターンとアンチパターン、Impala / Hadoop / BigQuery、これから学ぶ言語としての PHPPHP を学ぶ書籍、PHP が今後も使われるか、PHP 7 への移行、CI/CD を導入するか否か、ソフトウェアエンジニアのキャリア、コミュニティとの関わり方などについて話しました。 Show notes Do You PHP はてな Maple Project Do You PHP? 2017年にプロが今更PHPを学ぶための、Webまとめ - BASE開発チームブログ PHPマニュアルを読もう 初めてのPHP Real World HTTP A Tour of Go 書籍「PHPによるデザインパターン入門」の原稿テキストを公開します Do You PHP?のWebサイト閉鎖とコンテンツ移行につい

    13. Do You PHPの現場?(kunit / shimooka) | PHPの現場
    shimooka
    shimooka 2017/11/09
    飲みながら居酒屋でグダグダ喋る回です。@shin1x1さん、@kunitさんありがとうございました! #phpgenba
  • PHPの現場

    48. キャリアと開発の力点の変遷(hidenorigoto) @hidenorigoto さんと、キャリアと開発の力点の変遷、システム開発と人などについて話しました。 後藤さんのキャリア プレイヤ、プレイングマネージャ期 エンジニアリングマネージャ期 CxO 期 設計への道 設計を学んで上手くいったこと エンジニアリングマネージャ マイクロサービス化へのチャレンジ 自分で技術を理解して判断できるようにする ソフトウェアじゃない問題も大事 俯瞰してみる CxO 会社全体を考えてエンジニアリングを捉える ビジネスのモデルを考える 正しさよりも上手くワークするかどうか 正しさを求めたいエンジニアとの対話 ワークすることを重視する原点 システム開発と人 事業で扱われるデータを軸にする 誰のための設計 より事業に効果的なソフトウェア開発 正解の無い世界 配信日:2022-07-18 収録時間:1:

    PHPの現場
    shimooka
    shimooka 2017/10/31
    少数による局所的なPHP勉強会と言うか、座談会と言うか。昔のPHP勉強会後の懇親会を録音してたらこの手の話を腐るほど聞けたのかも知れないと思うと勿体なかったかな、と今更ながらに思う。
  • TDD を体験する本「テスト駆動開発」 - Shin x Blog

    TDD の原典である テスト駆動開発 が、t_wada さんによって再翻訳されるということで興味を持っていたところ、見誌を送って頂きました。ありがとうございました。早速、拝読させて頂きました。 以前の翻訳版である「テスト駆動開発入門」が出版された頃、XP や他の xUnit などは読んだのですが、書は未読でした。テストをコードで書くことや自動化には興味があったので、おそらく手に取ったことはあったと思うのですが、購入には至りませんでした。 当時は、新しい開発プロセスの一つとしてテストの自動化を捉えていましたが、それを日々の開発で当たり前に行っている中で書に触れてみてどのように感じるかという視点で読み進めました。 書は、三部構成となっています。第 1 部 と 第 2 部 では、TDD を実践しながらコードを書き上げていく過程を解説しています。第 3 部は、テストに関する様々な話題が

    TDD を体験する本「テスト駆動開発」 - Shin x Blog
    shimooka
    shimooka 2017/10/25
    『TDD を行うかどうかという話とテストを書くか書かないかは別』
  • 「型を意識した PHP アプリケーション」を発表しました / PHP カンファレンス 2017 - Shin x Blog

    PHP カンファレンス 2017 にて「型を意識した PHP アプリケーション」を発表してきました。 発表 github.com 型宣言が付いていないコードに、スカラー型の型宣言、ドメインに特化した型の型宣言と型(クラス)の実装を行うライブコーディングをメインにしました。 ライブコーディングの部分は動画を見た方が分かりやすいです。下記の 13:00 頃からコーディングがはじめるので、こちらも合わせてどうぞ。 きっちりまとめられた資料をベースに発表するのも良いのですが、実際にコードを書いていくのを見た方がイメージも伝わりやすいですし、私自身も人がコードを書く様を見るのが好きなので、この構成にしました。 また、質疑応答の時間を長めに取りたかったので、編は少し短めにして時間が余るように調整しました。当初の内容からどんどん引き算していって、内容をシンプルにしたので、結果的には進めやすかったですし

    「型を意識した PHP アプリケーション」を発表しました / PHP カンファレンス 2017 - Shin x Blog
  • 「PHPの現場」という Podcast をはじめます - Shin x Blog

    学生の頃からラジオを聞いて育ってきたので、技術系のPodcastが好きで色々と聞いています。 日語で PHP 界隈の話題について話すPodcastが無かったので、はじめてみることにしました。 「PHPの現場」というPodcastです。 PHP がメイントピックにはなりますが、PHP の開発現場で出てきそうな話題なら、それ以外の技術や話題についても扱っていくつもりです。 私がお話したいゲストの方をむかえて対談(雑談)形式でざっくばらんに話していきたいので、色々な方にお声がけしていこうと思います。その際は、よろしくお願いしますm(_ _)m Podcast配信環境 Podcastを配信する上で、どうしようかと迷ったのは配信環境です。 SoundCloud などのサービスを利用することも考えたのですが、どうせなら作ってしまおうと思い、自作しました。(実は、過去にPodcastの配信を行ったこと

    「PHPの現場」という Podcast をはじめます - Shin x Blog
    shimooka
    shimooka 2017/03/02
    すばらしい
  • 子どもの iPhone SE に行った設定リスト 2016年12月 - Shin x Blog

    子ども(13 才以上)用に iPhone を購入したので、セットアップしたメモです。 iPhone IIJmio を利用するために、Apple Store で SIM フリーの iPhone SE を購入しました。 www.apple.com SIM 私が、IIJmio を利用していて、何ら不都合が無いので、同じく IIJmio にしました。連絡は、LINE(チャット or 電話)で行うつもりなので、データ通信専用 SIM を申し込みました。 3GB プランで、900円/月です。(後述する i-フィルター for マルチデバイス を申込んだので、+ 360円) www.iijmio.jp ペアレンタルコントロール(機能制限) 利用できるアプリやアクセス先を制限できる機能です。必要な箇所を設定しました。 support.apple.com Apple ID 利用者が、13 才未満なら子ども用

    子どもの iPhone SE に行った設定リスト 2016年12月 - Shin x Blog
    shimooka
    shimooka 2016/12/23
    タイミング良い
  • PHP 7 の無名クラスから考えるクラスの在り方 - Shin x Blog

    いよいよ、PHP の次期メジャーバージョンの PHP 7 がリリースされます。すでに、RC4 が登場しており、来月予定されているリリースが楽しみです。 PHP 7 には幾つかの新機能が盛り込まれているのですが、その中でも気になるのが、無名クラスです。 無名クラスとは 無名クラスは、クラスの定義をすることなく、オンザフライでオブジェクトを生成する機能です。匿名関数(ネイティブクロージャ)のクラス版だと思うとイメージしやすいです。 無名クラスは、new classで、生成します。下記が、そのサンプルです。ここでは、sayメソッドを持つ無名クラスを定義して、$objectに格納しています。$object の say メソッドを実行すると、'Hello'という文字列が出力されます。 <?php $object = new class { public function say() { echo

    PHP 7 の無名クラスから考えるクラスの在り方 - Shin x Blog
  • 「レイヤードアーキテクチャを意識したPHPアプリケーションの構築」を発表しました

    2015/06/27 に開催された PHPカンファレンス福岡2015 にて、「レイヤードアーキテクチャを意識したPHPアプリケーションの構築」という発表をしてきました。 MVC フレームワーク(CakePHP / Laravel)で構築したアプリケーションをレイヤードを意識して改善したという内容です。参加いただいた皆さんの顔ぶれを見ると歴戦の勇者みたいな方ばかりでしたが、和やかな雰囲気でセッションを進めることができました。ご参加ありがとうございました。 発表資料 発表資料は以下です。 MVC にサービスレイヤを追加して、それぞれの役割を意識して作る。レイヤ間の依存を明確にする。サービス(ドメイン)を中心に考える。よく言われていることなのですが、実際に実践する中で、ハマりがちなことや実際に実践してきた中で感じたことを紹介しました。もちろん、これで ok ということはないので、今後取り組んでい

  • 「Jenkinsサーバで使う Docker」を発表してきました - Shin x blog

    すっかり年の瀬ですが、今年最後の発表を DevLove 関西にて行いました。 Docker 実践編ということで、CI の一環でビルドサーバに使っている Docker についてお話してきました。 発表資料 Jenkins サーバに Docker を入れており、ビルドの環境として利用しています。構成や使い方は、わりとベーシックな内容です。 プロビジョンには Ansible を使っており、ローカルコネクションで ansible-playbook を実行しています。 使い捨てできる環境なら実用的 勉強会の最後に、発表者への QA の時間があったのですが、多数の質問があり、Docker に対する関心が高いのをあらためて実感しました。 今回、参加された方は、これから Docker を使ってみようという方が多いようで、導入に関することや、安定性などに対する質問が多かったです。(安定性に関しては、私のセッ

  • Shin x blog Advent Calendar 2013 やります

    11 月も半ばに入り、そろそろ今年の終わりも近くなってきました。年末といえば、おなじみなのが Advent Calendar ですね。 例年は、PHP Advent Calendar を立てたり、他の Advent Calendar に書いたりしていました。自分の担当日が来るまでは、書くネタを探したりして、わりと楽しみだったりするのですが、終わってしまうと、もう書くことは無いんだなあという一抹の寂しさを感じたりします。 いっそのこと今年は毎日書いてしまおう!ということで、Shin x blog Advent Calendar 2013 を立ててみました。 Shin x blog Advent Calendar 2013 Shin x blog Advent Calendar 2013 2013/12/1 から 12/25 まで、毎日 Shin x blog のエントリを書きます。 一つのエ

  • Vagrantで作るPHP開発環境[実践編]をPHPカンファレンス2013で発表してきた

    (2013/10/09追記) PHP開発環境を構築するサンプル Vagrantfile をアップしました。 PHP開発環境のサンプルVagrantfile 第7回関西PHP勉強会で発表した下記の内容をベースに、より実践的な内容を追加しました。 PHPシステムの開発環境をVagrantで作ることを題材に、基的な流れをお話しました。 ポイントは、プロビジョニングにシェルを使う部分と、やはり synced_folder ですね。AWS上にも同じ環境を構築できる部分ももう少し深くお話したかったのですが、時間が足りませんでした>< また、Vagrantfile があるディレクトリ(vagrant upしたカレントディレクトリ)も synced_folder となっていて、仮想マシンでは /vagrant としてアクセスできるということも知っておくと便利です。これを利用するとChefのtemplat

  • Vagrantをはじめてみたい方へ「Vagrant入門ガイド」を書きました

    「Vagrant入門ガイド」という電子書籍技術評論社さんから出版しました。Kindle ストア と Gihyo Digital Publishing にて購入できます。 Vagrantは、まだエンジニアが中心に触っている状況ですが、いずれはWebデザイナーやコーダーの方など、サーバ構築を自分ではやらない人にも、制作するWebサイト、システムの動作検証を行う環境として利用する場面が増えていくと思います。 blog エントリなども多数あるのですが、断片的な情報も多く、また、Vagrant自身の進化が早いため、最新の環境だと上手くインストールできなかったり、動かないということがままあります。(このblogの過去エントリも。。。) もちろん、じっくりと調べていけば解決できる問題なのですが、できれば、はじめの一歩くらいは、まとまった情報が日語であると良いなと思い、書を書きました。 目次 書は

  • いまどきのPHPが分かる「PHPエンジニア養成読本」が出ます

    2013/9/13に「PHPエンジニア養成読」というムック技術評論社から出ます。 このの巻頭記事を執筆させて頂きました。巻頭記事では書のイントロダクションとして、PHP5.3/5.4/5.5の新機能と「いまどき」のPHP開発を紹介する2章構成になっています。 PHPを取り巻く環境は大きく変わっていっています。普段からそういった変化を追いかけている人は良いのですが、日常の開発に没頭しているとついそういった動きに気づかないままということがあります。また、昔のPHPのままのイメージで止まっている人も多いかもしれません。 そこで、PHP が大きく変化した 5.3(名前空間、クロージャ、LSB)から、5.4(トレイト、配列の短縮構文、ビルトインサーバ)、最新の 5.5(ジェネレータ、finally、パスワードハッシュ関数)を第1章で紹介しています。 第2章では「いまどきのPHP開発」という

    shimooka
    shimooka 2013/08/27
    執筆陣が相変わらず豪華。とはいえ、結構入れ替わってるのをみて色々と感慨深いと言うか何というかいろんな思いが頭の中を回るそういう印象。
  • Amazon S3 stream wrapper で S3 を操作する

    AWS SDK for PHP2 に実装されている Amazon S3 stream wrapper で S3 を操作してみました。 Amazon S3 stream wrapper を使うと「s3://bucket/foo/bar.txt」といったパスで mkdir() や file_get_contents() などの標準関数から S3 を操作することができます。 Amazon S3 stream wrapper の使い方 Amazon S3 stream wrapper は AWS SDK for PHP2 に含まれているので、SDK をインストールしておきます。インストール方法などは下記をどうぞ。 AWS SDK for PHP 2 をインストールして AutoScaling の設定を行う Aws\S3\S3Client の registerStreamWrapper メソッドを実

  • PHP5.5 のコードキャッシュは APC から Zend OPcache へ

    PHP5.5 からコードキャッシュとして標準バンドルされた Zend OPcache を試してみました。 第6回関西PHP勉強会で Zend OPcache についてLTしたのでインストールやベンチマークなどはこちらで。 beta4時点では、Zend OPcache は拡張で提供され、opcache.so インストールされる。 Zend OPcache を使うには、php.ini で zend_extension=opcache.so の記述が必要。 やっぱりデフォルトでインストールされるのは楽。 PHP5.5リリースと共に使えるので安心。(PHP5.4 対応の APC はまだ beta) ユーザデータのキャッシュはできないので、別の方法が必要。 OCP – OPcache Control Panel Zend OPcache の利用状況(設定、キャッシュ量など)が確認できるスクリプトが