レビューの考え方かき集め

最近レビューする機会が多くなり、個人の能力不足を実感している。加えてレビュー能力のナレッジが過度に個人依存となっており、成果物の質に影響を及ぼしている。

 

問題点/疑問点

・レビューの能力はどのように身に着けたらよいのか。単に回数をこなしていれば身に着く?

・チームのレビュー品質を底上げするにはどうすへわきなのか。

質の低いレビューで往復が多くなり、工数の増大、スケジュール遅延に繋がっている。

 

ざっと読んでみて勉強になった記事を以下に貼っておく。

 

ラクスルのエンジニアブログより

https://techblog.raksul.com/entry/2023/06/26/120000

・前提条件を確認する

・レビュー依頼時のテンプレート

テンプレートを使うことで前提条件の把握が容易になるはず。

今のチームでは単に結合テスト仕様書のみ共有して「レビューおねがいしますー」みたいな感じなので、もう少し事前情報を共有してもらうようにしたい。

 

■日経クロステックの記事

有料会員じゃないのが残念。

記事で紹介されている『なぜ重大な問題を見逃すのか 間違いだらけの設計レビュー第3版』(日経BP)

の購入を検討しよう。

https://xtech.nikkei.com/atcl/nxt/column/18/02660/112100001/index.html

【随時更新】RPG言語の学習

ある企業の基幹システムでRPG言語を利用していると聞いた。

そのような言語は全く聞いたことがなかったので、どんな言語か調べたり触ってみたりしようと思う。

 

# 情報源

とりあえず「IBM RPG 入門」と検索してみたら、有益そうな情報がいくつか見つかったので下記に貼っておく。

【FFRPG】第一回 とりあえず作ってみよう! | IBM i 総合情報サイト iWorld(アイワールド)

 

保存版「これから使う人のためのIBM i入門ガイド」(全42章を公開) - アイマガジン|i Magazine|IS magazine

 

ILE RPG 解説書

 

ILE RPG プログラマーの手引き

 

# 用語

IBM i

 OSの名称。基幹システムを長年サポートしてきた実績のあるOSらしい。

RPG

 RPG

  定位置記入形式というような記述方式でコーディングするらしい。

  「桁」に意味を持たせている。

  コードが少なくなるが、直感的には把握できない。

 RPG

  このバージョン?より、他言語のような書き方(桁位置に依存しない)

  ができるらしい。FFRPG Free Form RPGと呼ばれているようだ。

ビタミンAをなぜ抽出したかったのか

理研ビタミンの統合報告書を読んでいて気になったことの備忘録

統合報告書 | IRライブラリ | IR情報 | 企業情報 | 理研ビタミン株式会社

 

> 天然ビタミンAの製造から始まりました

 

との記載があったが、なぜビタミンAを製造しようとしたのだろう。

 

こんな論文を見つけたので読んでみる。

・日本の天然ビタミンA産業開拓の歴史

https://www.jstage.jst.go.jp/article/vso/79/2/79_KJ00003504693/_article/-char/ja/

 

目を通してみたが、「そもそもなぜ製造」の部分は見えなかった。

 

研究の発端となった理由は何なのだろう

当時ビタミンA欠乏症が問題になってたのか、と思い調べてみたが

そのような事実も特に見当たらなかった。(ビタミンB1脚気の話題は数多くヒットするが)

 

以下は知識をかいつまんだ上での推測に過ぎないが一応備忘録としてメモ。

・上記論文によると、1922年に初めての産業化がされたとこのこと。

・記事を見ると、ビタミンの発見が1915年であったらしいことがわかる。

 http://www.mac.or.jp/mail/110401/02.shtml

 

ビタミンの発見(1915年)→ビタミン研究が盛んに→ビタミンAの研究が盛り上がる→

研究成果が出たので産業化しようのような流れであって、社会問題が背景にあってとかそういうことではないのだろうというように見えた。

 

業務知識メモ:人事労務編

HRMとは

HRMとはHuman Resource Managementの略称で、人的資源管理、人材マネジメントなどと訳され、人材を経営資源として捉え、有効活用するための仕組みを体系的に構築・運用することを意味する。 具体的には企業戦略を実現するために必要な人的資源の需要を予測し、予測に基づいた採用、教育・育成、配置を行う。さらに配置した人材を動機付けていくための人事制度も含まれ、一般的にはHRMの多くは人事部の業務となる。 リクルートマネジメントソリューションズでは、採用・等級・評価・賃金・教育体系の設計という、HRMの根幹をなす仕組みの構築・運用支援を幅広く行っている。

https://www.recruit-ms.co.jp/glossary/dtl/0000000060

HCMとは

人的資本管理(HCM)は、ビジネス目標を達成するために従業員を誘引、採用、トレーニング、育成、管理、維持するために使用される一連のプラクティスとツールです。 目標の達成には従業員の力が不可欠である組織では、成果を上げるために従業員が必要とするコア・スキルを発展させるためのリソースを割り振ります。 人的資本管理を活用することで、従業員の能力のギャップを特定し、それらのニーズを満たすことに焦点を当てて採用活動を行えるようになります。

HCMの手法を活用することで、従業員の成長と企業の目標に対する貢献を促進する強力な組織文化を構築することができます。 従業員は自分のキャリアをよりコントロールできるようになり、自分のスキルや才能によって長期にわたって企業に貢献することができます。

https://www.ibm.com/jp-ja/topics/human-capital-management

Kotlin lateinit修飾子

概要

以下のように理解。
Nullを許容しないプロパティはコンストラクタで初期化しなければならないのだが、
依存性の注入を通して初期化される場合やユニットテストのsetUpメソッドのようなケースでは不便。
そこで、そのような場合にクラスのボディでプロパティを参照する際にnullチェックを回避することを可能としたもの。

構文

  • トップレベルのプロパティやローカル変数のように、クラスのボディで宣言される"var"プロパティで使用
  • プライマリコンストラクタではないこと
  • そのプロパティがカスタムゲッターやカスタムセッターを持っていないこと
  • プロパティや変数の型は非null ※プリミティブ型はNG

サンプルコード

internal class LateInitSampleTest {

    lateinit var testObject: TestObject
 //    testObject: TestObject

    @BeforeEach
    fun setUp() {
  // lateinit var がない場合はここでエラー"Unresolved reference: testObject"
        testObject = TestObject()  
    }

    @Test
    fun test() {
        // late init varないとエラー"Unresolved reference: testObject"
        assertEquals("lateinit sample!", testObject.getMessage())
    }

    // .isInitializedで lateinit var が初期化済みかどうか確認できる
    @Test
    fun test_isInitialized() {
        assertTrue(this::testObject.isInitialized)
    }
}

class TestObject {
    fun getMessage(): String {
        return "lateinit sample!"
    }
}

参考

Kotlin Constructors

構文

プライマリコンストラクタの例

Kotlinでは以下のようにプライマリコンストラクタをクラスヘッダーに書くことができる。

class Car constructor(brand: String) { /* 任意のコード */ }

また、アノテーションや可視性修飾子がない場合は"constructor"キーワードを省略できる。

class Car(brand: String) { /* 任意のコード */ }

追加:イニシャライザブロック

class Car constructor(brand: String) {

    val message1 = "brand is $brand".also(::println)

    init {
        println("1つ目のイニシャライザブロック")
    }

    val message2 = "length is ${brand.length}".also(::println)

    init {
        println("2つ目のイニシャライザブロック")
    }
}

fun main() {
    Car("Mazda")
}

実行結果

brand is Mazda
1つ目のイニシャライザブロック
length is 5
2つ目のイニシャライザブロック


調査残

参考

検索力向上- Chromeの設定変更

普段はWebアプリケーションの開発をしていますが、
英語の記事のほうが情報量豊富でいいな。公式英語しかないし、英語でいいや。
と思う場面がけっこうあります。

思い切って、Chrome自体の言語を英語にしてみました。

chrome言語設定

Java HashMapのような「英語 英語」での検索で変化を試してみました。

before 両方とも日本語を設定した場合

日本語での検索結果

after 両方とも英語(上記画像)を設定した場合

英語での検索

多少は変わったかな、と思いますが、Java HashMapでは効果が実感しにくいですね....
英語設定にしているにもかかわらず、検索上位に日本語の記事が出てくるのは、
設定以外にも表示順を決める要素があるんでしょうか??

効果があまり得られず悔しいですが、今後も地道に検索力アップ目指していきたいと思います。

検索の仕組みから理解かな....