ダッシュで奪取

ゲーム、読書、人生

『情熱プログラマー』を読んだ

ITエンジニア(プログラマー?)の自己啓発的な本です。 自己啓発本を読みたい期が来ていたのと、最近「いちばんの下手くそでいよう」を目にする機会が多かったのでよい機会だと思って読みました。

自分もいちばんの下手くそになりたーいと思って無職になったことを思い出しました。忘れかけていた初心を思い出しました……。

メモ

  • キャリアは投資
    • 会社は社員に投資している(雇っておくのに費用をかけている)
    • 社員は良い投資物件になる必要がある
      • おもしろい考え方
  • 練習の目的は上達すること
    • 練習で綺麗なコートばかりを書こうとしない
      • 自分の守備範囲内をうろうろするだけになる
        • 耳が痛くなりました
        • 最近の自分、デプロイよく分からないし、お金もかけたくないし……からGitHub Pagesのみで完結するものを作りがち
    • コードを初見で理解する能力を鍛える
  • 実務の中で練習することも多い
    • プロのミュージシャンはステージの上で練習などしない
      • 確かに……!
    • 実務の中で練習すればよいという考えを改める
  • 特定の役割で自分を規定しない
    • × これは○○さんが詳しいから任せよう
  • プロジェクトはマラソンである
    • 短距離走をしない
  • いちばんの下手くそでいよう
    • 有名なことば
      • × 周りがすごい人ばかりでつらい
      • ○ すごい人たちに引っ張られるように成長できる

先延ばしについて

こちらを読んで、ウワーーーーーーー!!!てなりました。旧姓のまま使い続けているサービスがいくつかありますし、気づいたらシンクに皿が積まれ床には洗濯物塚ができており、学生のときは単位を落としたりしました 普通に生活に支障が出てますね

togetter.com

自分には効果がなかったもの

時計を実際の時間より早くずらしておく

時計を15分早めたら、15分遅く行動するだけなのでだめでした。

締め切りを実際よりも早い日付でカレンダー登録しておく

これも時計と同じでだめでした。

課金して「高いお金払ったんだから…」という気持ち駆動で頑張る

お金をドブに捨てても「まぁいいか」と思ってしまうのでだめでした。全然よくない。

大量のリマインド

すべてを無視してしまうのでだめでした。あまりにも通知が溜まると、ひとつふたつ増えたところでどうでもよくなりませんか。

効果があったもの

一回にひとつのことをやる

買ったまま読まずに積まれていく本がたくさんありましたが、新しく本を買っても今読んでいるものが終わるまでは開かず、一度に一冊しか手をつけないようにしたら少しずつ積読消化できるようになってきました。

やりたくない理由を取り除く

  • お風呂に入るの面倒 → なぜ? → シャンプーを泡立てるのが苦痛だった → 泡立てネットを買ったら、スッとお風呂に入れるようになった
  • 洗濯物をしまうのが面倒 → なぜ? → 畳むのがだるすぎる → 畳まずに全部引っかけるか専用の箱にぶち込むようにしたら、床などに放置することがなくなった

一定の日数だけは頑張ってみる

朝起きてスマホを開くのが苦痛ではないように、タスクそのものを習慣にできれば始めるハードルは低くなるはずです。平均で66日ぐらい継続すると習慣化できる可能性が高いらしいので、何かをしたいときは「とりあえず66日だけ」やってみています。

こちらの本を参考にしています ↓

kyoruni.hatenablog.com

タスクをめちゃくちゃ細分化する

ToDoアプリの掃除機をかけるタスクには「掃除機の入っている箱を持ってくる」「箱から掃除機を出す」レベルで記載してあります。1つのタスクの粒度をめちゃくちゃ細かくすると、まぁやってもいいかなという気持ちになります。

こちらの本を参考にしています ↓

kyoruni.hatenablog.com

とにかくやる

何も考えずに5分ぐらいやってみたらなんとかなることがあります。

こちらの本を参考にしています ↓

kyoruni.hatenablog.com

メモ

  • 先延ばししたくて先延ばししている人はいないと思うんですよね
    • でもなぜ始められないのか
    • なぜなのか
  • 今先延ばしにしていること
    • 壊れたマウスを買い替える
      • 全てのクリックがダブルクリックになって不便
      • トラックパッドが生きているからいいかな…と思って放置している
    • ノートPCを買い替える
      • バックスペースが3回に1回ぐらい無反応で不便
      • 3回押せば動くからいいかな…と思って放置している
    • 着れなくなった服を捨てる
      • 腐ったりするわけではないからいいかな…と思って放置している

【Go/Echo】html/templateで共通レイアウトを指定したい

環境

  • Go 1.20.7
  • Echo 4.11.1

やりたいこと

  • http/templateを使う
  • layout.htmlの中で、各パスに対応したHTMLを表示したい
  • 雑に言うと、Railsのpartialみたいなことをしたい

やったこと

  • 全体的な内容はこちら

github.com

テンプレートを登録する部分

  • views/_layout.html という名前で共通レイアウトを作っている
  • 各種Viewは views/*/*.html にある
  • 実際のファイル:kyoruni/echo-crud/route/router.go
e := echo.New()

// テンプレートを登録
t := template.Must(template.New("base").Funcs(sprig.FuncMap()).ParseGlob("views/*.html"))
t.ParseGlob("views/*/*.html")
e.Renderer = &utils.Template{
    Templates: t,
}

e.GET("/", controller.GetPokemons)
e.GET("/pokemons", controller.GetPokemons)
e.GET("/types", controller.GetTypes)
return e

テンプレートを返す部分

type Template struct {
    Templates *template.Template
}

func (t *Template) Render(w io.Writer, name string, data interface{}, c echo.Context) error {
    return template.Must(template.Must(t.Templates.Lookup("layout").Clone()).AddParseTree("content", t.Templates.Lookup(name).Tree)).ExecuteTemplate(w, "layout", data)
}

共通レイアウト

  • {{- template "content" }} 部分に、各パスに対応したViewの内容が入る
  • 実際のファイル:kyoruni/echo-crud/views/
{{- define "layout" }}
{{- $param := . }}
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>{{- $param.pageTitle }}</title>
</head>
<body>
  <div class="container">
    {{- template "content" }}
  </div>
</body>
</html>
{{ end -}}

呼び出し元

func GetPokemons(c echo.Context) error {
    return c.Render(http.StatusOK, "pokemons/index", map[string]interface{}{
        "pageTitle": "ポケモン一覧",
    })
}

func GetTypes(c echo.Context) error {
    return c.Render(http.StatusOK, "types/index", map[string]interface{}{
        "pageTitle": "タイプ一覧",
    })
}

テンプレート

{{- define "pokemons/index" }}
<h2>pokemons index!!</h2>
{{- end }}
{{- define "types/index" }}
<h2>types index!!</h2>
{{- end }}

参考URL