2021-11-13 Weekly Report
いま読んでいる本
今週の読んだ記事
今週のTwitter fav
うわ、めっちゃこれありそう。。。
— Mutsumi (@muttsu_623) 2021年11月11日
5億円で買収した「パズル懸賞アプリ企業」の売上が2年で10倍に。オーテが直面した「ユーザーの顔」が見えない問題の克服法。グロースの背景にあった「2つの施策」|アプリマーケティング研究所 #note https://t.co/4CDlDklnA3 pic.twitter.com/HQue8OmqX4
新刊『チームトポロジー』発売のお知らせ。
— Ryutaro YOSHIBA (@ryuzee) 2021年11月10日
今年前半から翻訳していた本が間もなく発売です。4つのチームタイプ、3つのインタラクションモードを活用して、フローを実現する方法について解説しています。ぜひよろしくお願いします!!
https://t.co/QjShp0VS8X
2021-11-06 Weekly Report
いま読んでいる本
今週の読んだ記事
今週のTwitter fav
Slackのtimesに情報流して、特に学びない状態で満足してしまう癖があったのでtimes消したった
— Mutsumi (@muttsu_623) 2021年11月4日
合う人と合わない人がいるなという学び
2021-10-23 Weekly Report
いま読んでいる本
今週の読んだ記事
今週のTwitter fav
【宣伝】
— ちゅーやん@「内側から理解する Flutter」Zenn で販売中 (@chooyan_i18n) 2021年10月19日
Zennで「内側から理解する Flutter 入門」という本を販売しています。
日本語の解説記事が少ないFlutterフレームワークやProvider, Riverpodの内部的な仕組みを、ソースコードを引用しながら解説しています。
Flutterの理解をさらに深めたい方はぜひ。 #flutterhttps://t.co/CICsqwxdLz
:kami_tagami:
— さうす🍶 (@Mtatsu10Ta) 2021年10月18日
2日間本当にありがとうございました。言葉にすると色々なものが出てくるのでうまく言えませんが、これからがスタートラインなので気を引き締めて良いものをやばいレベルで作っていこうという気持ちです。
— Keigo Arakaki :Atrae / Designer (@dillustxx) 2021年10月17日
still day one. pic.twitter.com/mFqd1Brew9
I love being apart of @altiri_chiba the best experience I’ve ever had in Japan. Can’t wait to see how this season unfolds! I know we’re destined for great things as a team!!!
— RAV (@e_rav24) 2021年10月17日
Next.jsのSEO系ライブラリが高機能なものしかなかったので、シンプルで軽いやつ(< 1kb gzipped)を作った
— catnose (@catnose99) 2021年10月16日
next-head-seohttps://t.co/alU46QMsVT
人生2度目のポートアリーナはアルティーリ千葉を見に行ってきました!!
— 麒麟田村裕 (@hiroshi93) 2021年10月16日
我らがDIMEの岡田選手、そして名古屋の時に応援行こうと思ってたのに行けなかった杉本選手のタオルをお詫びで購入しておきました!
そしてナイススポンサード!
野口さん招待ありがとうございました#バルクオム#BULKHOMME pic.twitter.com/u08lovq74Y
Slack Appを作るのにWebでぽちぽちアプリ設定しなければならなかった項目が YAML 一発で行えるようになってた。これはよさげ。 / “Create and configure apps with manifests” https://t.co/DXrw3thwgt
— KOYAMA Tetsuji (@koyhoge) 2021年10月16日
2021-10-09 Weekly Report
いま読んでいる本
今週の読んだ記事
www.slideshare.net
今週のTwitter fav
書きました!
— catnose (@catnose99) 2021年10月6日
ビデオ会議でカメラの映像の代わりに絵文字を配信するためのツールを作ったhttps://t.co/hObtYBbdxP
なるへそ!!このプロセスなら本番に反映されたコードを使ってデザインするので、ちょいちょい話題になるデザインとコードのズレ問題がなくなるなhttps://t.co/ey5LNKU2s8 pic.twitter.com/uwRgtMOty6
— フロントエンド大好きseyaさん (@sekikazu01) 2021年10月5日
Next.jsのSEOコースが公開されてる👀
— Sakito (@__sakito__) 2021年10月4日
What is SEO? - Search Engine Optimization | Learn Next.jshttps://t.co/QaZ9oOOIaQ
\転職した理由をnoteにまとめました!〜第2弾〜/
— 山崎 俊紀 @Wevox カスタマーサクセス (@YamazakiTosh) 2021年10月4日
「新卒の就職活動でなぜインテリジェンスを選んだのか?」
「アトラエの社風文化のどこに魅力を感じたのか?」
などなど...
今回は社風文化にフォーカスした内容になってます!
ぜひ読んでみてください✨https://t.co/uvJfD6K6wB
コードが書けるIFTTT的なサービスのPipedream便利すぎんか…Webhook受け取ってSlack通知したいとき、最近全部これでやっとるhttps://t.co/qEQsXZudJO
— moga📸🧛 (@_mogaming) 2021年10月4日
“GitHub - nextui-org/nextui: 🚀 Beautiful, fast and modern React UI library.” https://t.co/nfe6llEYFr
— mizchi (@mizchi) 2021年10月4日
きた!! pic.twitter.com/AA7d6j24Hn
— David (@st___mg) 2021年10月4日
「過去問にチャレンジするためのシンプルな環境構築」を以下のように変更しました。免責事項をよくご覧いただきお試しください。
— ISUCON公式 (@isucon_official) 2021年10月4日
AWS環境で構築する、VagrantとVirtualBoxがあれば構築できる、WSL2があれば構築できる、に「ISUCON11 予選」「ISUCON11 本選」を追加#isuconhttps://t.co/ET9rZ7AEu2
明日の21時から初めての雑談生配信します!!
— KLeIn (@kleinitblog) 2021年10月2日
なんとゲストにデータサイエンス系のVtuberアイシアさん(@AIcia_Solid)と
ITセキュリティ系のYouTuberアテナさん(@sec_by_athena)をお呼びするという、
謎に豪華な内容です😳
質問など沢山待ってるので、お暇な人はぜひ🙌 pic.twitter.com/kMF5tZtqjd
2021/10/02 Weekly Report
いま読んでいる本
今週の読んだ記事
storybook.js.org github.com note.com
今週のTwitter fav
社内チャットで話題に上ってたので、良いとことうちのチームで真似するなら変えたほうがいいとこを社内ブログにまとめた。
— なかざん💉💉💪 (@Nkzn) 2021年10月1日
Next.jsで整える。デザインとロジックの分離 https://t.co/9jcQadImW2
【重要なお知らせ】
— nabettu🍲Wraptas運営 (@nabettu) 2021年10月1日
このたびWraptas(旧Anotion)は株式会社ペライチに事業譲渡しました!
私も一緒にフルタイム入社して運営をやっていきます💪
ペライチ社の長年のノウハウをアドバイスしていただき、よりスケールを目指して行きますので引き続きよろしくお願いします🙏 https://t.co/VD3OmTGIvW
先日のスクラップを清書しました。Storybook 駆動開発 @ CSF3.0|Takepepe https://t.co/X9ENosp3Dk #zenn
— Takepepe (@takepepe) 2021年9月30日
本日はご参加ありがとうございました!!つたない司会で申し訳ありませんでした……!!
— りゅーそう (@ryusou_mtkh) 2021年9月30日
次回以降もご参加お待ちしております🎉
#jamjamjamstack
フロントエンド構成の詳細記事ひとつめ!
— よしこ (@yoshiko_pg) 2021年9月30日
依存関係の方向を縛る社内eslintルールが注目されてたようだったので、このたびOSS化しました!他のおすすめ設定も紹介しています。
細かいところ気になっちゃう人・自動化好きな人に届け〜〜🕊️https://t.co/RH2KNL2IIA
朝起きたら猫の出産完了していた‥
— デグハヤ バイク選手 (@Deguhaya1) 2021年9月29日
いつ産んだの???#猫#子猫 pic.twitter.com/NeYGUcIIGT
#TypeScript
— suin❄️ TypeScript入門書好評公開中 (@suin) 2021年9月28日
ユーティリティ型Record<K, T>の紹介
『サバイバルTypeScript』より pic.twitter.com/oI41EQ7hlR
自分達のプロダクトでのimportの参照関係の方向制限とかは、全てdependency-cruiserでやっててeslintではやってないなーhttps://t.co/GwlF9M9eQ5
— hiroppy (@about_hiroppy) 2021年9月27日
前職の営業メンバー。
— Shin🇧🇪⚽️ (@Shinnosukee07) 2021年9月26日
入社してから6ヶ月経過し、自分の持ち味を出せるようになりました!と1on1で語ってくれた日の日報。
持ち味が出過ぎてる。 pic.twitter.com/WIDB1ShQAP
久々にブログ書きました。
— りゅーそう (@ryusou_mtkh) 2021年9月26日
この度、教員からエンジニアに転職したので、これから頑張りたいことをまとめてみました!https://t.co/eklD6OuJMA
2021/09/25 Weekly Report
いま読んでいる本
今週の読んだ記事
今週のTwitter fav
転職した理由をNOTEにまとめました!
— 山崎 俊紀 @Wevox カスタマーサクセス (@YamazakiTosh) 2021年9月24日
Wevoxでは採用活動を強化してますので、興味をもっていただけた方は気軽にご連絡ください✨https://t.co/0JKJRXCGFs
https://t.co/cFfiIRIwGr
— まりな🐱⚡ (@marin_a___) 2021年9月23日
マークダウンでスライド書けるの本当に有難い
これ一人で作ってるのすごいな…
supabase が prisma のように DB のスキーマから型生成に対応予定とのこと!
— プログラミングをするパンダ (@Panda_Program) 2021年9月23日
> Supabase will soon release native type generators that dump your database types for various languageshttps://t.co/oUfYdUtk0Z
書いた。たぶんこれ作ったら、メチャメチャ需要があると思う。どっかに提案したい。
— 深津 貴之 / THE GUILD / note (@fladdict) 2021年9月22日
reading...
Slack用「確認お願いしますボット」の仕様(誰か作ってほしい)https://t.co/qg8BrTjnJk
めっちゃ汎用性のあるSaaSを見つけてしまった。
— にっしー🏄SaaS x 個人開発 (@paranishian) 2021年9月22日
様々なアプリケーションをAPIにしてくれるサービス。
App連携ではなくシンプルにAPIを作るだけなので、Zapierと競合というよりはZapの1stepに使ってワークフローを拡張できるイメージ。
まずは個人開発で試してみよーっと!https://t.co/Tb9pWGEx8N
9/22新刊:ISBN978-4-8399-7599-9 マイナビ出版 『セキュア・バイ・デザイン 安全なソフトウェア設計』 Dan Bergh Johnsson、Daniel Deogun、Daniel Sawano 著 須田智之 訳 20冊入荷 pic.twitter.com/Dgorhqzbbk
— ジュンク堂書店池袋本店 PC書担当 (@junkudo_ike_pc) 2021年9月22日
Intercom流 新機能の開発判断Yes/No質問10
— 湊 雅之 | Masayuki Minato (@Masayuki_Minato) 2021年9月22日
1. ビジョンと適合するか?
2. 5年後も重要な機能か?
3. 全顧客が利するか?
4. Workflowは改善するか?
5. 事業は成長するのか?
6. 有意義なengagementが産まれるか?
7. 成功したら、CS投資できるか?
8. ROIは十分あるか?
9. 創れるか?
10. スコープは適正か?
ER図を作るツールに悩んでいたのですが
— せせり(mahiro oka)@個人開発 (@sesere115) 2021年9月22日
これを教えてもらって今最高にハッピーhttps://t.co/gn7dhhI4xB
この数ヶ月、Core Web Vitals の改善活動を各プロダクトの開発メンバーとずっとやってきたのですが、まとまった知見が作れたので公開しましたー。参考までに。 / “Core Web Vitals に対応するため、各サイトの改善活動を実施しました | リクルート メンバーズブログ” https://t.co/3CroXLTZLt
— Yosuke Furukawa (@yosuke_furukawa) 2021年9月22日
Kaigi on Rails (#kaigionrails) のプレイベントに登壇させていただけることになりました! 🙏✨
— 安川要平/Yohei Yasukawa (@yasulab) 2021年9月22日
今年も様々な実例があったので、皆さんに役立つ情報を共有したいなと考えています 😌✨
📜 お知らせ記事: https://t.co/qDCEw7p8aZ
🎫 チケット予約: https://t.co/CjJaKejmtM https://t.co/rTfrO5Ujkb
カスタムフックスでタプル・オブジェクトどちらを返すべきか?
ReactのCustom HooksはロジックをHooksの中に隠蔽し、コンポーネントが必要とする値あるいは関数だけを提供することができます。そのCustom Hooksとコンポーネントとの接点である、Hooksの返り値は原則なんでも返せます。
もっともわかりやすいのはタプル(≒配列)で返す例。React提供のHooks(useState
やuseReducer
など)もこのかたちをとっています。そのため他のHooksと同じ書き方で統一できるという点がメリットでしょう。
export const useCounter = (initialValue: number) => { const [count, setCount] = useState(initialValue); const countUp = useCallback(() => { setCount((prev) => prev + 1); }, []); return [count, countUp] as const; };
const [count, countUp] = useCounter(0);
一部の記事では返り値と異なる変数名で受け取れることがタプルのメリットという意見もありましたが、正確には以下のオブジェクトのかたちでも再命名することで別変数名で受け取ることは可能です。
export const useCounter = (initialValue: number) => { const [count, setCount] = useState(initialValue); const countUp = useCallback(() => { setCount((prev) => prev + 1); }, []); return { count, countUp }; };
const { count: userCount, countUp: countUpFunc } = useCounter(0);
ですので、再命名可否に関してはタプル・オブジェクトどちらでも良さそうです。ただし、オブジェクトの方が再命名の場合の記述量が若干増えるのがデメリットですね。
とはいえ、Hooksはなんでも返して良い
Hooksの返り値はxxじゃないといけないという決まりはなく、なんでもいいというのが一般的な意見のようです。リファレンスでもいくつか例がありますが、多様な返り値を認めています。
これは単一の文字列を返り値としています。
import React, { useState, useEffect } from 'react'; function FriendStatus(props) { const [isOnline, setIsOnline] = useState(null); useEffect(() => { function handleStatusChange(status) { setIsOnline(status.isOnline); } ChatAPI.subscribeToFriendStatus(props.friend.id, handleStatusChange); return () => { ChatAPI.unsubscribeFromFriendStatus(props.friend.id, handleStatusChange); }; }); if (isOnline === null) { return 'Loading...'; } return isOnline ? 'Online' : 'Offline'; }
こっちはJSXを返しています。
import React, { useState, useEffect } from 'react'; function FriendListItem(props) { const [isOnline, setIsOnline] = useState(null); useEffect(() => { function handleStatusChange(status) { setIsOnline(status.isOnline); } ChatAPI.subscribeToFriendStatus(props.friend.id, handleStatusChange); return () => { ChatAPI.unsubscribeFromFriendStatus(props.friend.id, handleStatusChange); }; }); return ( <li style={{ color: isOnline ? 'green' : 'black' }}> {props.friend.name} </li> ); }