Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

【読書メモ】プログラマが知るべき97のこと

プログラマが知るべき97のこと

プログラマが知るべき97のこと

リーダブルコード等々のプログラマ系読み物の類です。
見開き2ページ程度ミニエッセイ集の体を取っています。
中身は

  • IDEに頼り過ぎるな
  • バージョン管理しろ
  • 詰まったら少し席外して息抜きしろ

等々……それなりに面倒見の良い企業なら先輩が教えてくれそうな話が並んでいます。
そういった立場の人が周りに居ない人は時折読み返すと新しい発見があるかも知れません。
あるいは、これから指導する立場になる人が予習本に使うのもいいかも。

シリーズものとして「システムアーキテクト」「ゲームデザイナー」のバージョンもあるので、興味のある方はそちらもどうぞ。

Pythonでも正オブジェクトの否定の否定はTrueだった

shuzo-kino.hateblo.jp
以前の記事で、RubyJavascriptの正オブジェクトの否定の否定をやるとTrueが返ってくるという記事を書きました。
今回はその、Python

実際のところ

RubyJavascriptと違い、"!"の構文がありません。

!a
# 2> SyntaxError: invalid syntax

というわけで、"not"構文を使います。

a = "hoge"
not (not a)
#>> True

Pug/JadeのCase文はJavascriptのswitchっぽい挙動をする

Pug/JadeのCase文はJavascriptのswitchっぽい挙動をするようです。
必要ならbreakで飛ばす事もできます。

実際のところ

変数friendsを取得し、その結果に応じてスクリプトを変える例を見てみます。

- var friends = 114514
case friends
  when 0: p 君は"けものフレンズ"を見ていないフレンズなんだね
  when 1: p 君は"けものフレンズ"を見たフレンズなんだね
  default: p すっごーい! 君は#{friends}回"けものフレンズ"を見たフレンズなんだね

実行するとこんな塩梅。

<p>すっごーい! 君は114514回"けものフレンズ"を見たフレンズなんだね</p>

という訳で、脳味噌を溶かして楽になりたい方は是非"けものフレンズ"を

参考もと

Case – Pug

郵便番号から住所を出してくれる便利ライブラリ「yubinbango.js」

yubinbango.jsは郵便番号から住所を出してくれる便利ライブラリです。
npmみたいなツールが無くとも、そのまんま埋め込みができます。

実際のところ

<script src="https://yubinbango.github.io/yubinbango/yubinbango.js" charset="UTF-8"></script>

<form class="h-adr">
  <span class="p-country-name" style="display:none;">Japan</span><input type="text" class="p-postal-code" size="3" maxlength="3">
  <input type="text" class="p-postal-code" size="4" maxlength="4"><br>

  <input type="text" class="p-region" readonly /><br>
  <input type="text" class="p-locality" readonly /><br>
  <input type="text" class="p-street-address" /><br>
  <input type="text" class="p-extended-address" />
</form>

何もしないと、こんな感じ
f:id:shuzo_kino:20170205235319p:plain
数値を入力すると……
f:id:shuzo_kino:20170205235323p:plain

無料みたいですが、募金は受け付けているそうです。

参考もと

github.com

"Tag Interpolation"機能をつかって、タグ文中に別のタグをネストなしでねじ込む

jade/pugでは、構造はネストで表現します。
が、見通しが悪くなるから短いトコではネストしたくない……という場合、
今回の"Tag Interpolation"記法が使えます。

実際のところ

これが

p.mew hoge#[strong.yeah fuga]piyo

こうなります。

<p class="mew">hoge<strong class="yeah">fuga</strong>piyo</p>

参考もと

Interpolation – Pug

pugでmixinを使いリンクリストめいたものをだす

pugでmixinを使いリンクリストめいたものをだす方法です。
mixinはテンプレートみたいなもんです。

実際のところ

Idで内部リンクするような事例の場合、
以下のような書き方でいけます。

      mixin link-block
        .container
          .row
            .col-xs-12
              a(href=arguments[0], data-role='button')=arguments[1]
              
      +link-block("#page3", "りんご")
      +link-block("#page4", "ごりら")
      +link-block("#page5", "らっぱ")
      +link-block("#page6", "ぱいなっぷる")
      +link-block("#page7", "(がんば)るびぃ")

参考もと

Mixins – Pug

Fusion360でインポートしたデータに警告マークがつき始めた場合……リンクが上手く行ってないのかも

Fusion360ではインポートという、他のファイルで編集したオブジェクトをリンクさせる便利機能があります。
が、これはリンク先の編集状態を掌握しており……差分が発生すると警告マークをだします。
f:id:shuzo_kino:20170202231656p:plain
この警告マークはリンク先と同期させる事で消す事が可能です。。
でてるオブジェクトを右クリックし「最新を取得」。
すこしロード時間が必要ですが、これで完了です。
f:id:shuzo_kino:20170202231700p:plain