Learn more about the team/working environment
All posts
株式会社NoSchool
7 months ago
自習サポート機能リリースの背景
リリースの背景今回はオンライン家庭教師マナリンクのアプリの機能の1つである自習サポートを紹介したいと思います。オンラインだから、・距離感が縮まらない・指導の質が下がる・モチベーション維持が難しいなど色々言われてスタートしたマナリンクですが、始めて約2年。今はオンライン家庭教師(というサービス形態)は今後も必要とされると自信をもって言えます。ただ、単純にZoomで1時間先生と授業をするものを提供するのは面白くないし、仲介会社の価値とは?というところもあります。なのでマナリンクはオンライン家庭教師の先生のサポートをするということにリリース時から徹し、今回の自習機能もそのうちの1つです。▼先生...
株式会社NoSchool
7 months ago
React Nativeエンジニアのスキルマップを考えようとしている話
CTOの名人です。今週からエンジニアのインターンを迎えており、本人の意向でReact Nativeアプリの開発に関わってもらっているのですが、どういう順番でスキルを習得していくことが効率がよく、かつ本質的なのかというのをちょっと考えています。言わずもがな、エンジニアのスキルセットは表現が非常に難しくて、単に知識ベースで語れるところもあれば、歴史的な背景も含めてしっかり理解しなければならないところや、感覚として腹落ちしないといけないところ、さらに複合的な知識が組み合わさってようやく見えてくるものなどがあり、これを正しくナレッジグラフとして表現できるだけでノーベル賞ものなのではと思うほどです...
株式会社NoSchool
7 months ago
未経験者がマナリンクの先生向けメディアを約1年間運用した結果
■スタートアップ企業で長期インターンをした印象長期インターンの求人を探していた際、アルバイトとどう違うのか?という求人をいくつか見た覚えがあります。長期インターンの前に様々なアルバイト経験をしてきました。職場や職種にはよりますが、「やることが具体的に決まっている」「マニュアルが用意されている」などがアルバイトでは一般的だと思います。これまでのアルバイトの中でも成長できましたが、実際に弊社でインターンをしてみてアルバイトと違ったところは、自分で考える分、成長速度も速まるという点でした。特に私が入社した時はマニュアルはなく、代表から直接一つ一つ教えてもらっていました。成長できるかどうかは、自...
株式会社NoSchool
7 months ago
Xdebugを使ってPHPUnitテストコードのカバレッジを取得する
マナリンクではかれこれ2年くらいPHPUnitでテストコードを書いていますが、恥ずかしながらこれまでカバレッジを取得したことがなかったので、方法を調べて簡単にまとめてみました。※ざっと3時間くらい調べたり試した内容を記載しているため、今後修正したり、運用を改善する可能性があります。テストカバレッジとはテストコードがソースコード(プロダクトコード)のうちどれくらいの割合を実行しているかを示す指標のことです。せっかくテストコードを書いていても、プロダクトコードのうちほんの一部しか実行していなければ、漏れが多いと言えます。テストカバレッジを計測することで、どの程度テストコードが網羅できているか...
株式会社NoSchool
7 months ago
2021年の振り返りと今年の目標
2021年ざっくり振り返り・6坪→24坪へのオフィス移転(3人で限界→10人くらいは余裕!)・GMVは順調に成長(昨年対比で3倍)・先生の登録数も増加(昨年対比で同じく3倍)2022年ざっくり方針・マナリンクを大きくしていきます(最低GMV2倍〜目標3倍)・採用していきます(3名→10名程度を2022年中に)・組織づくり&オペレーション最適化に時間を使っていきます・マナリンク以外の事業も始めていきます(New!)2021年を振り返ると日々の目標数値に集中した結果、最低限の成長率は維持出来たかなと思う一方、個人としてはもっと仕事を渡して、チームとして勝てるような組織づくり・オペレーションの...
株式会社NoSchool
7 months ago
E2EテストフレームワークのCypressに入門してみた
CTOの名人です。ここ2ヶ月ほどE2EテストフレームワークのCypressに入門しているので、概要や所感を簡単にまとめてみます。https://www.cypress.io/E2Eテストとはなにか?E2Eはend-to-endの略で、直訳すると「端から端まで」という意味になります。E2Eテストとは、他のテスト手法である単体テストといったコードベースのテストとは違い、実際にユーザーが体験する動作をベースにテストコードが書ける技術です。具体的にいうとCypressでは、テストコードを実行するとブラウザが立ち上がり、ブラウザ内で指定した挙動(ページを開く、要素をクリックする)のほとんどを行うこ...
株式会社NoSchool
over 1 year ago
2021年4月度 マナリンクリリース7選【Web】
オンライン家庭教師マナリンクCTOの名人です。今日は4月末日なので、今月のマナリンクリリースをまとめます!ちょっとリリースが多くてまとめるのが大変なので、Webのリリースかつ主要なものをピックアップしていきます。※アプリも開発しているのでそちらのリリースもあります。初めて月額課金の指導コースをご利用いただいたユーザーさんに書画カメラの案内メールを送る主な利用技術:Laravel、AWS SES、ECS(タスクのスケジューリング)さっそく一風変わった機能ですが、月額課金の指導コースをご利用いただいたユーザーさんに書画カメラの案内メールを送信する、というものです。オンライン指導においては生徒...
株式会社NoSchool
over 1 year ago
LaravelリポジトリのREADME.mdを改善しました!
オンライン家庭教師マナリンク CTOの名人です。今週新しくWebエンジニアの方に参画していただくことになりましたので、LaravelリポジトリのREADME.mdファイルを改善しました。この記事では改善した内容と、改善した結果足りなかった情報に対する反省点をまとめようと思います。README.mdとは?GitHub上に作成したリポジトリのルートディレクトリにREADME.mdという名前のマークダウンファイルを置くと、暗黙のルールとして開発者に対して読むべきドキュメントであると示すことができます。したがって、環境構築手順であったり、開発にあたっての全体感を書く場所に適しています。私個人のや...
株式会社NoSchool
over 1 year ago
PHPUnitでテストするときのちょっとしたTips5選
オンライン家庭教師マナリンク CTOの名人です。今日はマナリンクのバックエンドを支えているLaravelでテストコードを書く際に利用している、PHPUnitのちょっとしたTipsをまとめました。JSON型のカラムに対してassertDatabaseHasしたいそもそもJSON型のカラムはほとんどのケースで使わないのですが、稀に使った際にテストコードの書き方に迷います。書き方としてはカラム名を'->'で繋げることがポイントです。雑な例ですが、支払い履歴テーブルがあるとして、そこにpayment_resultといった名前で決済代行サービスへのリクエスト結果をJSONで格納しているとします。そ...
株式会社NoSchool
over 1 year ago
Vue, React開発時のPHPStorm, VSCode設定の話
マナリンク CTOの名人です。以前マナリンクのフロントエンド開発環境をまとめました。https://www.wantedly.com/companies/noschool/post_articles/310301今日は続編として、フロントエンド開発時のIDE(PHPStorm, VSCode)の設定周りについて書いていきます。PHPStorm普段私はPHPStormを主に使っています。あまりに便利なので年間1万円ほどを支払う価値は存分にあると思います。PluginPHPStorm(というか、IntelliJ周辺)には多くのプラグインがありますが、その中でもフロントエンド周りのプラグインを...
株式会社NoSchool
over 1 year ago
チャットに既読機能を追加したので、新旧デザインを比較してみた!
マナリンクでCTOを務めている名人です。オンライン家庭教師サービスを運営しているマナリンクでは、指導開始後に先生と生徒がチャットでやり取りできる機能をWeb / アプリで提供しています。先生は売上の管理等を含めてWeb版マナリンクを活用頂き、ご家庭はReact Native製のクロスプラットフォームアプリを活用いただいています。Firebaseを活用することで、相互にリアルタイムにメッセージのやり取りができます。今週はチャット機能に既読を追加するという大きな変更を加えました!すでに走っているアプリケーションに後から既読機能を追加するのは相応に大変でした。合わせて全体的にデザインも今風に改...
株式会社NoSchool
over 1 year ago
【技術検証】Template Literal Typesを使ってmicroCMSのクエリを型安全に実行するアイデア
マナリンクCTOの名人です。弊社ではかれこれ1年ほどmicroCMS を使っています。aspidaを使って型安全に実行できる工夫はしているものの、検索クエリの仕様はmicroCMS独自のもののため、Typoのリスクだったりリファレンスを覚える手間がかかります。まだまだDXを向上できる余地はありそうです。今回は、技術検証としてmicroCMSへの検索クエリを型安全にするための実験をやってみたので、その過程を記事にしました!概要Template Literal Typesを使い、以下のようにオブジェクトのプロパティをカンマ区切りで列挙する文字列を型安全に生成できる型を実装しました。micro...
株式会社NoSchool
over 1 year ago
LaravelでのPDF生成機能を、サービスコンテナを活用して疎結合に実装する
概要小ネタです。先日、領収書を PDF でユーザーがいつでも発行できる管理画面の機能をリリースしたのですが、施策に入る前はさっぱりどうやって実装したらいいか分からなかったので、備忘を兼ねてメモ。最終的には Interface を使うことで、詳細なPDF出力の実装にアプリケーション層が依存しないように組んでみたので、そこまで書き留めておきます。TL;DRPHP で提供されるパッケージを使う方法が最もシンプルいち機能のために PDF 関連のライブラリを入れたいわけではないので、AWS Lambda で実装できる方法を探したhttps://github.com/zeplin/zeplin-ht...
株式会社NoSchool
over 1 year ago
「Laravelのサービスコンテナをコードリーディングする会」を主催しました!
3月1日、「Laravelのサービスコンテナをコードリーディングする会」を主催しました!https://connpass.com/event/205279/サービスコンテナって何?一応ざっくり解説しておきますと、Laravelはプログラミング言語PHPによるサーバーサイドWeb開発フレームワークで、弊社のオンライン家庭教師サービスのマナリンクでのサーバーサイド実装にも使われている具体的には、決済処理だったり、アカウント登録処理、先生の指導コース保存処理などが動いているフレームワークを使うことで、一般的なWeb開発でよくある機能は予め実装されている状態からスタートできるので、マナリンク独自...
株式会社NoSchool
over 1 year ago
マナリンクのフロントエンド開発環境【Nuxt×TypeScriptおすすめライブラリ編】
CTOの名人です。今回はNuxt×TypeScript周辺に絞って、おすすめライブラリを並べていきます。TypeScriptを駆使してオンライン教育を革新していくメンバーを募集していますので、気になった方は応募してください!composition-api系Vue3から追加されたcomposition-apiは、個人的にはゲームチェンジャーになると言っていいほど革新的なものだと思っています(もちろんReact Hooksも)。こんな記事も書いています。https://zenn.dev/meijin/articles/34b9482dbc856d2523ed簡単に言えば状態管理ごと処理を特定...