メンタープラン
自己紹介
現在業務では、フリマアプリを運営する会社でサービスの開発に携わっています。
業務経験としては4年ほどで、railsの会社で2年、phpの会社で2年ほど経験を積みました。
インフラもフロントも一通り触ってます。
まだまだシニアエンジニアとは言えないかもしれませんが、逆に言えば初心者時代の気持ちが残っていますので、気持ちに寄り添って一緒に考えて行けるようなかんじでアドバイスできればと思います。
スキルセット
Ruby on Rails Laravel JavaScript AWS PHP Ruby nginx MySQL
趣味
喫茶店でプログラミング、銭湯
経歴・実績
### 以下現職概要です。
入社してすぐにフレームワーク移行の担当になり、一年弱の間、レガシーな自社内CMSのモダンフレームワーク置き換えを行ってきました。
symfony製のレガシーシステムの把握からはじめて(先輩社員と一緒に)踏襲すべきところと、適正化するところを棚卸ししていき、実際に実装→テスト→リリース→フィードバック対応、保守運用(現在)まで完了しました。
ツギハギだらけの旧システムをlaravelでデザインパターンを使用(今回はRepositoryパターンを採用)したり、旧フレームワークでは他のクラスでも使っている共通なコードをサービス化したり、汎用的な属性を取得するようなコードをtraitにまとめるなど、可読性と保守性の高い実装となるように検討、実装していきました。
CDNサービスを外部のSaaSサービスを利用して画像の加工制御の効率化も実現しました。
JSを触ったことがなかったのですが、生JSとJQueryでフロントの実装も行いました。
phpとオブジェクト指向についての議論しながら実装できたのと、laravelに慣れた、jsに対する抵抗がなくなった、というのが収穫です。
### 技術面
### 機能概要
・実装したシステムは、自社メディア(サブカルチャー専門のニュースサイト)に載せる記事や、自動Tweet、外部ポータルサイトへの配信、動画や写真、DBコンテンツ(アーティストなど)などを一括で管理するシステムです。動画の登録や、記事の作成(リッチテキスト機能)まで、全て自社内で開発しています。
### 使用技術
・フレームワークはlaravel、クライアント側はJS(JQuery)、DBはMySQL、ミドルウェアはvarnishやmemcachedを使って実装しています。
### 作業概要
・実装は3人ほどでやっていて、さらにPMが進捗を管理しています。一週間ごとのスプリントでbacklogを使用してチケットを配分して実装するという流れです。
・自分が担当したのは記事作成周り、DBコンテンツの管理ページ、その他です。記事作成機能では、マークダウン機能をJSで実装、その他紐付け系のDBコンテンツとの連携、生の記事からWEB掲載のために 独自クラスなどを適用したHTML構造を自動生成する処理、記事のタイマー公開や外部配信のタスクを管理する機能などを実装しました。
### フロントエンド開発
・記事作成ページで、記事にDBコンテンツを紐付ける際に非同期に動作するオートコンプリート機能をtypehead.jsとbloodhound.jsを利用して実装。DBとのやりとりにはsolrとeloquentの両方を利用してます。他には自動で機種依存文字をチェックする機能や、記事保存時の公開時刻が空だったり、紐付け外部リンクのタイトルを自動取得したり、その他記事を書く画面によくあるようなアラート機能を実装しました。JSはクラスを作ってインスタンス化して動かしているので、別JSファイルから汎用的(global)なJSを呼び出すような実装をしました。
### サーバーサイド開発
・メディアを取り込む画面で、youtube、niconico、soundcloud、vimeoなどのその他動画プラットフォームからAPIやスクレイピングを使ってメディア情報をDBに保存する機能。youtubeAPI等を使って必要なデータを取得してDBのテーブル設計にあった形に加工して登録。
・記事に関連するコンテンツを、登録画面を用意して、関連テーブルに保存していく機能。各テーブルのコンテンツをJSを使って検索サジェストするためにサーバーサイドでデータの加工とJSへの受け渡しを実装。
・定期バッチでtwitterやfacebookの自動投稿、GoogleBot用にサイトマップへのindex登録、を行うためにジョブキューを登録する機能を実装、ジョブを実行して実際にSNS投稿するバッチ作成。エラーハンドリングで投稿エラー時にSlackへの投稿をSlackのAPIを使用して実装。
入社してすぐにフレームワーク移行の担当になり、一年弱の間、レガシーな自社内CMSのモダンフレームワーク置き換えを行ってきました。
symfony製のレガシーシステムの把握からはじめて(先輩社員と一緒に)踏襲すべきところと、適正化するところを棚卸ししていき、実際に実装→テスト→リリース→フィードバック対応、保守運用(現在)まで完了しました。
ツギハギだらけの旧システムをlaravelでデザインパターンを使用(今回はRepositoryパターンを採用)したり、旧フレームワークでは他のクラスでも使っている共通なコードをサービス化したり、汎用的な属性を取得するようなコードをtraitにまとめるなど、可読性と保守性の高い実装となるように検討、実装していきました。
CDNサービスを外部のSaaSサービスを利用して画像の加工制御の効率化も実現しました。
JSを触ったことがなかったのですが、生JSとJQueryでフロントの実装も行いました。
phpとオブジェクト指向についての議論しながら実装できたのと、laravelに慣れた、jsに対する抵抗がなくなった、というのが収穫です。
### 技術面
### 機能概要
・実装したシステムは、自社メディア(サブカルチャー専門のニュースサイト)に載せる記事や、自動Tweet、外部ポータルサイトへの配信、動画や写真、DBコンテンツ(アーティストなど)などを一括で管理するシステムです。動画の登録や、記事の作成(リッチテキスト機能)まで、全て自社内で開発しています。
### 使用技術
・フレームワークはlaravel、クライアント側はJS(JQuery)、DBはMySQL、ミドルウェアはvarnishやmemcachedを使って実装しています。
### 作業概要
・実装は3人ほどでやっていて、さらにPMが進捗を管理しています。一週間ごとのスプリントでbacklogを使用してチケットを配分して実装するという流れです。
・自分が担当したのは記事作成周り、DBコンテンツの管理ページ、その他です。記事作成機能では、マークダウン機能をJSで実装、その他紐付け系のDBコンテンツとの連携、生の記事からWEB掲載のために 独自クラスなどを適用したHTML構造を自動生成する処理、記事のタイマー公開や外部配信のタスクを管理する機能などを実装しました。
### フロントエンド開発
・記事作成ページで、記事にDBコンテンツを紐付ける際に非同期に動作するオートコンプリート機能をtypehead.jsとbloodhound.jsを利用して実装。DBとのやりとりにはsolrとeloquentの両方を利用してます。他には自動で機種依存文字をチェックする機能や、記事保存時の公開時刻が空だったり、紐付け外部リンクのタイトルを自動取得したり、その他記事を書く画面によくあるようなアラート機能を実装しました。JSはクラスを作ってインスタンス化して動かしているので、別JSファイルから汎用的(global)なJSを呼び出すような実装をしました。
### サーバーサイド開発
・メディアを取り込む画面で、youtube、niconico、soundcloud、vimeoなどのその他動画プラットフォームからAPIやスクレイピングを使ってメディア情報をDBに保存する機能。youtubeAPI等を使って必要なデータを取得してDBのテーブル設計にあった形に加工して登録。
・記事に関連するコンテンツを、登録画面を用意して、関連テーブルに保存していく機能。各テーブルのコンテンツをJSを使って検索サジェストするためにサーバーサイドでデータの加工とJSへの受け渡しを実装。
・定期バッチでtwitterやfacebookの自動投稿、GoogleBot用にサイトマップへのindex登録、を行うためにジョブキューを登録する機能を実装、ジョブを実行して実際にSNS投稿するバッチ作成。エラーハンドリングで投稿エラー時にSlackへの投稿をSlackのAPIを使用して実装。
返信スピード
24時間以内