ひよっこゲームブログ

なにもかも初心者のひよっこがゆったりと何かする

「チームのことだけ、考えた。」読了

旅行の空き時間で読んだ。
大体5~6時間くらい?結構サクサク読めた。
www.amazon.co.jp

会社というチームをどう作るかの本

本書ではサイボウズという会社が生まれてから現在に至るまでの成功と失敗を書いている。
読み物としても面白いし、企業の在り方はどういう方向かみたいなのもちょこちょこ書いてある。

基本的には「チームワークはどうしたら良くなるのか」という課題が根本に置かれていて、課題をひたすら解決していったら良い会社が出来上がって紆余曲折ながらもトントンと進んでったという話なんだけど、シンプルながら実践できているとこは少ないよなと。

本書におけるチームというのは部署やプロジェクト単位の話ではなく、会社自体もチームとして見ている。
最終的には会社を去る人間の先まで見ている。すげぇ。

課題に対して「なぜ」を徹底する。そして実行する。

ここにおける課題というのは、何かうまくいってないものは当然として「現行であるものが本当に正しいのか」も扱っている。

読んでて「これいいな」と思ったのは以下の内容。

  • 会社の理想は社員全員が共感できるものである。しかしながら個人のあり方はバラバラで問題ない
  • 事実と解釈は別のもの。別々に受け止める
  • トップダウンボトムアップ、両方大事に決まっている
  • 「やりたいこと」「やるべきこと」「できること」から生まれるモチベーションの指標
  • 制度は何の目的を達成するためにあるのか考える
  • 風土も制度も時代に沿って目的や内容を進化させていく

書きたことはもっと色々あるけどひとまずこのくらい。
上記の内容はビジネス書だったら用例含めかなりのボリュームで書かれると思うので、本書はサクッと要点だけ読めるので良い。

筆者の社長がたくさん失敗して「なぜ」を突き詰めて解決していくという流れなので、内容が腑に落ちやすい。
これなら自分単位で始められそうみたいなのがいくつかあるので参考にしていきたいと思う。

最近「MBAクリティカルシンキング」を読んでいるので、本書の課題解決と照らし合わせながら読めるので良かった。
改訂3版 グロービスMBAクリティカル・シンキング (グロービスMBAシリーズ) | グロービス経営大学院 |本 | 通販 | Amazon

JetPackComposeとかををちろちろ読む

@Preview便利すぎる
インタラクティブモード強すぎんだろ
developer.android.com

Coroutineが現在どうなっていのかを読んだ
書き方とかは勉強した当時(Kotlinでの正式採用前)とあんまり変わってないみたい

kotlinlang.org

developer.android.com

Composeにおける副作用
概念的に副作用絶対あるだろって予想はついてたけど、いざ読んでみるとこれが全然わからん
Composeもそうだし、他の知識をもっとつけてから読み直そうと思う developer.android.com

宣言的とは何か?

宣言的?

JetpackComposeの記事を読むとよく出てくる「宣言的UI」
当たり前のように使われているけど、「宣言的」とは何か?

宣言的プログラミングとは?

色んな解説を見ていく

  • プログラムが何を行うかではなく、プログラムがどのようなものかであるか
  • どうやるかではなく、何をやりたいかを書く
  • どういう結果が欲しいのかを書く

ざっくりまとめると、目的を記載する。みたいな感じか。

じゃあ宣言的UIとは?

宣言的UIに関してはこのような記述を見つけた
「UIがどのようなものかをコードで宣言すること」

なるほど。これならComposeの書き方に納得ができる。
Text()を表示する簡単なコード

@Composable
fun Greeting(name : String) {
    Text("Hello $name")
}

Text()でテキストを表示するというのが非常に分かりやすい。
Compose以前だとコードのあちこちからUIにアクセスしていたので見落としとか多かったからね。

今日はこんなもんで。記事を書くのに30~40分くらいかな?
今週はどこかでサクッとAndroidのプロジェクトで色々試したい
面接も溜まってるよォ~~~

Android開発をやり直す

Android開発浦島太郎の自分用メモ


savedInstanceStateって何だよ

EmptyActivityを作ったら出てきた。こいつは何だ(ここ浦島)

公式ドキュメントガイド
developer.android.com

Activityが破棄されたときの対応策の一つらしい
ドキュメントを読み進めていると便利なことが書いてあった
「ViewModel を使用している場合は、SavedStateHandle を使用して状態を直接 ViewModel 内に保存できます」
まーじか
onSaveInstanceState(Bundle)で値を保存するように設定して
onCreate(Bundle)で値を取得しなおせる
なーるほどね

activity_main.xmlが無いじゃん

もう簡単なのはJetpackComposeで何とかなるらしい(ここ浦島)
調べてみる
developer.android.com

Composable関数とは(@Composable)
findViewById()とかsetText()とかややこしくなってたのでJetPackComposeで生まれた
昔よりもデータの定義を楽にしてくれる
確かUIとロジックのコード行ったり来たりするの面倒だったしな

@Composeのアノテーションが付いている関数はデータをUIに変換するためのもの
要はUIの出力の責務がある関数になる

xmlで記載していないので、データをかなり動的にできる」
この辺は上手く制御してかないと負債が溜まりそう

他のメリットは何か?

  • コンポーズ可能な関数は任意の順序で実行できる
  • コンポーズ可能な関数は並行して実行できる

再コンポーズとは?
これだけパッと見ても分からない。読み込んでみる
つまるとこ
値が変化したときに、値の状態を画面に反映させるためComposeを再構築すること
UI全体を再Composeするとコストがかかるので、必要なものだけ実施する
パラメータを変更しない関数は処理をスキップする developer.android.com

久々に本読むだけじゃなくてガツガツ手を動かしているんだけど楽しいな

30歳を迎えた

下書きが溜まってますがとりあえず年をとったので書いてます。

30だよ三十路だよ。
親に「とうとうおじさんだね」って言われた。
自分でも結構生きてきたんだなぁとかちょっと感慨深くなった。
あとコーヒーのケーキを食べた。

自分が高校生の時クソガキだった俺達の面倒を見てくれた教師が30だったのを考えると「あの人マジ頑張ってたな・・・」と尊敬の念を抱かざるを得ない。

運動とかはきちんとしてるから身体にボロが・・・みたいなのはないかな。
でも肌トラブルが多いかも・・・。
若くありたい・・・。

最近はイベント増えたり友人と会ったりして、1年のイベントがそこそこコロナ前に戻ってきた感じする。
今日はちょうど技術書典行ってきたよ。
モバイルの本はなかったから、AWSとかインフラ周りの本をごちゃごちゃ買ってきた。

30という節目もあって自分のキャリアを見つめ直した時、一体自分は何になりたいのだろうと思う。
とりあえず目の前のことで精いっぱいなんだけど、周りを見ると同い年で色々考えられている人はやっぱすげーなーってなる。

今は自分に不足している基礎知識だったり、興味のある分野を広げるところから始めてる。
Webとかインフラとか。大学の講義とか今受け直すと全然解像度が違うんだろうなぁ・・・。
とりあえず今日も本を読んで寝るのだ。

くっそ久々に文章を書く

書くネタは溜まっていたんだけど
なかなかやる気が出なかったのでリハビリ程度に書いていく
最後にブログを書いたのが2022-01-22ってマジ?




年を取ること

5月21日に年を取った。気が付けばもう29です。

ちょっと前まで自分の誕生日にはとても無関心で心底どうでもいいと思ってたんよね。
なぜかっていうと人類は平等に年を取るから。

その人がどういう人間か関係なく年月というのは勝手に過ぎるもので
何もしてないのに「おめでとう」って言われてるの変じゃない?って

まぁ人間生きていれば考えも変わるもので
これは僕の好きなゲームでも言ってたことなんだけど
「今日まで何事もなかったことを祝う日」と受け取るようにした。

この言葉、当時はあんまり気にならなかったんだけど
ある時ふと納得してから「今年も安全に生きてこれた」と自分に言い聞かせるようにしている。

身体は資産



労働のこと

精神的なリハビリが終わって、ようやく心の余裕ができたって感じ。
半年~1年くらい燃え尽きてから復帰できなかったんだよね。
でも本読んだり自主的に何かする気力は確実に減った。

そういえば最近ちょっと昇給したんだけど
一番頑張ってた時に全く評価されなくて、今評価されるのすげーもにょる。
話を聞く限りでは案件の売り上げだけで評価してるみたい。

転職みたいなのは今あんまり考えてない。
今の自分の能力で他のとこ行ける自信がちょっとないなぁ。




書こうと思ってるネタ一覧

  • 格ゲーの「リュウ」というキャラの呪い
  • ストⅤを10人くらいに送り付けた結果と見えてきたもの
  • Inscriptionのレビュー(文句が山ほどあるのでクリアしたら書く)
  • ゲーム観戦の解像度の話
  • 技術系のなんか
  • etc.


だらだら過ごすのをやめるためにリハビリとして文章を書くのは良い

Kotlinのソート

先週にLeetCodeのデイリーをやってて知らなかったことをメモ

Kotlinにソートがあったことを知らんかった
今まで使う機会なかったしなぁ

公式ドキュメントを見たら結構色々できることを知った

kotlinlang.org



Merge Sorted Array

Solution
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

The number of elements initialized in nums1 and nums2 are m and n respectively. You may assume that nums1 has a size equal to m + n such that it has enough space to hold additional elements from nums2.

Example 1:

Input: nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
Output: [1,2,2,3,5,6]

Example 2:

Input: nums1 = [1], m = 1, nums2 = [], n = 0
Output: [1]

検証時に書いたコード

fun merge(nums1: IntArray, m: Int, nums2: IntArray, n: Int): Unit {
        
        var numsArray: IntArray = intArrayOf()
        
        for(i in 0..m-1) {
            numsArray += nums1[i]
        }
        for(i in 0..n-1) {
            numsArray += nums2[i]
        }
               
        val result: Unit = numsArray.sort()
        println(numsArray.contentToString())
        
        return result
    }

fun main() {
    merge(intArrayOf(1,2,3,0,0,0), 3, intArrayOf(2,5,6), 3)
}

Result:

[1, 2, 2, 3, 5, 6]

本来はソートのアルゴリズムを書くべきなんだけどな・・・