@namizatorkのマイページ - Qiita
Qiitaの記事です。 これまでに 2,700 Contributions いただきました
Discover companies you will love
フリーランス / 個人事業主
WEBエンジニア歴8年目 現在はフリーランスとして活動中 創りたいサービス構想中
現在LINEで様々なことをお願いできるコンシェルジュサービスを構想中です。
#### 問い合わせ寄与PJ【弁護士ドットコム株式会社】 `概要` 弁護士ドットコムではサービスの成熟期に差し掛かったいま問い合わせ数やユーザーの純減が止まらないという状況です。(全国の弁護士1/3が登録しているため頭打ちという問題もある) それらの状況は打開術、う、問い合わせ数とユーザーの純増を目指すため施策を回し、ユーザーにより良い機能、UIを提供しようというプロジェクトです。 7人チームのスクラムで主に施策を考えたり、実際に実装してみてユーザーの反応をOptimizeのA/Bテストを回して、BigQueryで効果検証をするという流れでやっていましたが、断捨離業務や新機能の開発など幅開く対応しました。 `成果` Googleのアルゴリズムアップデートなどの影響で残念ながら、思ったように成果は振るっていませんが、 今現在でも問い合わせ数とユーザーの純増を目指しています。 --- #### 毎週金曜日に行う業務外の20%ルールで対応した案件【弁護士ドットコム株式会社】 `概要` 弁護士ドットコムでは毎週金曜日に普段の業務から離れて、別でチームを組み、 これまで溜まってきた負債を回収しようという取り組みがあり、それらを自分たちで発案して実際に改修していくという制度があります。 複数の対応があるため、こちらにまとめます。 `使われていないテーブルの断捨離` これまで10年以上続いているサービスのため、使われなくなったテーブルやロジックが乱雑していて、開発効率の妨げになっていたため、それらの負担を少しでも無くしていこうということでチーム4人で対応しました。 内容はソースコード上で全文検索し、該当のテーブルが使用されていないか、またソースコード上では使用されている場合でもコンテンツとしては既に使われていない場合などもあり、それらをペアプロで調査して実際に断捨離できそうであれば断捨離を進めていくという流れで対応していました。 これらは成果として、今まで確立されていなかったテーブル削除の手順書の作成、 未使用なテーブル20個、その他不使用なカラムなどを削除しました。 `管理画面の改修` 管理画面は長年放置されていて、不具合が出たら修正するという方針になっていました。 ですが、普段業務として使用している方からは不満が溜まっていたようで多くの改善要望がありました。 それらを改善しようということになり、4人チームでミニマムの改修で大きく業務効率を上げれる箇所はないか管理画面をみんなで実際に使ってみて、目星をつけた機能を普段から使用している部署にヒアリングして実際に回収を行いました。 やったこととしては、複数のページに跨ったユーザー登録機能を一つにまとめて業務効率を改善、 またPHPのviewファイルで組まれていたページをReact×TypeScriptで組み直して、それらの改善手順書も作成しました。 もう一つは情報登録機能で並び替えがなく、普段は全消し全登録を繰り返しているという箇所をReact×TypeScriptで組み直して実装しました。 `PHPUnitの改善` 弁護士ドットコムではテストカバレッジ38%というあまり高くない数字とはいえ、ファイル数は1000以上あるためCIを回しているときのPHPUnit終了時間が9分も掛かっていました。 これらを効率化するため、PHPUnitの見直しするためのチームを発足して対応しました。 テストの並列実行、テストコードの見直し(具体的にはseeder、ixtureの削除、テスト自体の修正など)を行うことで4分台までPHPUnit終了時間を縮めることができました。 --- #### みんなの法律相談リニューアル【弁護士ドットコム株式会社】 `概要` 入社後すぐに配属されたプロジェクト。 弁護士ドットコムの根幹サービス「みんなの法律相談」のリニューアル対応です。 10年以上運用しているサービスのため誰も理解していない複雑な仕様、SP/PCで違うロジックのControllerなど様々な問題を抱えていたためにこれらの仕様をまとめて、ソースコードをシンプルに保ち品質保証を高めるという内容でした。 私がアサインしたタイミングではすでにある程度の要件はまとまっていたため、主にプログラムを書いたりテストをして、必要になれば関係部署とやりとりを行い要件をまとめて進行しておりました。 チームは6名で、こちらはカンバン方式を採用して各々がタスクをこなすという方針で進めていました。 `成果` 今までSP/PCで見た目も別れていたため、それらをレスポンシブ化、 また無駄なassetsファイル、使われていないロジックの断捨離を行うことでサイト表示速度の向上につながり、サイト訪問者数が大幅に増加し、社内の最優秀チームとして表彰されました。 ---
#### アニメキャラクター音声通話キャンペーン【株式会社Sinq】 `概要` キャンペーン番号に電話すると番号を選択し、指定の番号を押すと決められたキャラクターの音声が再生される。 Twilioという通話音声APIを使用した開発。 `技術領域` TwilioAPIの使用が初めてなので、1行ずつデバッグしてどんなデータを渡せばどんなデータが返ってくるのかを試しながら開発しました。 〇〇回線以上はパンク、キャンペーン開始日時〜キャンペーン終了日時に該当しなければコールを切断、 日時により音声データが変わるなどの複雑な分岐を求めれる仕様でしたが、 日時などの条件を定数ファイルで保管、分岐はなるべくネストしない様に切り分けるなどを意識して実装しました。 スムーズに実装を進められて想定していた工数より半月近く空いてしまったので、 しっかり書いた事がなかったテストコードを書いたテストが出来ました。 --- #### キャンペーンレポート管理システム【株式会社Sinq】 `概要` 広告代理店からの案件が大半なためキャンペーン案件をよく制作しており、 今まで開発してきた知見を活かしてキャンペーン管理システムを作りたいと言う話があり、自身も開発者として参画。 キャンペーンと言えど様々な種類があるため、先ずは形にする事を最優先と考えてSNSキャンペーンから開発する事になりました。 `技術領域` 実装内容は、別のシステムで収集してきたキャンペーン情報を一定時間でバッチ処理を起動し、 処理の中でキャンペーンに紐付く情報をデイリーデータとしてDBに保存して、APIでフロントにデータを渡すという内容です。 SNSキャンペーンは大きく分けてSNSキャンペーンを設定し、 設定したキャンペーン内容で情報を取得してくると言う管理機能、収集してきた情報を デイリーデータをレポートすると言う機能の二つがあり、 自身はデイリーデータをレポートする機能の設計・担当を致しました。 `成果` ディレクションや見積もりの作成など普通であれば新人のうちから関わる事のない上流工程を学ぶことで、 今のサーバーサイドエンジニアとしてだけでなく、開発の全体を見渡せるエンジニアになれたと感じております。 また技術面ではWebサイトの中では大きい規模の案件でチーム開発に携わり、自分一人だけが見れるコードは書かないという意識付けやGitHubフローを学びました。 --- #### キャンペーン管理収集機能システム【株式会社Sinq】 `概要` 自社サービス開発。 広告代理店からのキャンペーン案件が多いので、管理画面上でキャンペーンに使用するハッシュタグやツイートIDを指定して参加条件を満たしているユーザ情報を収集し、当選者などを管理しやすいシステムの開発をすることになりました。 `技術領域` 担当した開発は一部機能のリツイート収集システムです。 簡易的ではありますがDB設計からシステム設計実装までを一人しました。 実装内容は、TwitterAPIを使用して管理画面上で登録したツイートIDをcronを回して一定時間経つと、 自動的に登録したツイートIDのリツイートまたは引用リツイートしたツイートを収集してDBに保存。 その情報を管理画面上に表示して当選者などをお客さん側で簡単に設定でき、CSVエクスポートが可能というものです。 苦労した点は、TwitterAPIを使ってデータを引っ張ってくるやり方を従来であれば指定の時間から指定の時間をcronで収集してDBに保存するというやり方を取っていたが、それだとAPIの上限が1度に100件までしか収集できないため投稿数が多いと歯抜けになってしまうという課題がありました。 それをTwitterAPIに紐づけられたページングを使用し、ID順に取得する事でこの問題を解決することができました。 また同じ様な問題で、TwitterAPIの仕様で決められたリツイート取得では件数が決められている、引用リツイートを収集できないなどの理由で今回の要件は満たせませんでした。 どうにか収集できる方法はないか試行錯誤した結果、ツイート検索APIの組み合わせで上記の要件を満たせる方法を発見し、実際に組み込みました。 --- #### キャンペーンお問合せフォーム【株式会社Sinq】 `概要` 期間限定LPのアンケートフォーム。 アンケートフォームの内容を管理画面上で表示とCSVダウンロードするだけと簡単な要件でした。 客先サーバーでPHPが使えないことが判明し、API経由で別サーバーに管理画面とDBを立てて対応。 `技術領域` 管理画面上に反映させるという簡単な内容でしたが、クライアントのサーバーにPHPをインストールする事ができないということでJavaScriptの非同期通信でフォーム内容を別ドメインのサーバを用意し、そこにLaravel環境を立ててクロスドメイン対応。 バリデートを行い問題があればレスポンスを返し、問題がなければ保存するという対策を行いました。 この時点では、API開発が初めての開発だったのとCORSがしっかり理解出来ていなかったので、記事を読んでしっかりCROSドメイン通信を学びました。 取得元のLaravelで作った環境にCORSライブラリをインストールし、フォーム側のドメインからのリソースアクセスを許可しクロスドメインに対応出来る様にしました。
View Tatsuya Namizato's
Full Profile
This information is visible only to Wantedly users or the user’s connections
View past posts
View mutual connections
View Tatsuya Namizato's full profile
Qiitaの記事です。 これまでに 2,700 Contributions いただきました