miyohideの日記

技術的なメモなどを記しています

2018年12月25日(火)

曜日感覚が狂っている。

TypeScript Deep Dive日本語版

急に「TypeScriptについて調べよ」という話が降って湧いてきて、あわわわとしているときに見つけた。

Introduction - TypeScript Deep Dive 日本語版

こういうのを2,3日で終わらせて、まずは1本アプリを作ったら身につくんだろうなあ。あんまりできてないけれども。

2018年12月22日(土)

忙しい...

Middleman Part2

Middlemanを使って静的サイトを作っている。作り始めると色々と問題が起きてくるのでここではそのメモ。

CSSが更新されない

CSSファイルを更新してmiddleman buildで生成した後にHTMLファイルを参照すると古いCSSを見ていることが多くあった。いちいちブラウザのキャッシュをクリアするのも面倒くさかったので、なにか対策はないかなと思ったら、asset_hashを有効化すればOKであった。config.rbにて

activate :asset_hash, :exts => %w(.css)

と書けばOK。CSSファイルの読み込み時にhelperメソッドであるstylesheet_link_tagを使うことも忘れずに。

相対パスで出力

デフォルトだと<%= link_to 'About', '/about.html' %><a href='/about/'>About</a>のようにリンク生成されるんだけれども、相対パスで出力したい場合は<%= link_to 'About', '/about.html', :relative => true %>のようにrelativeオプションを指定してあげればよい。

config.rbにてset :relative_links, trueを書いてあげれば相対パスがデフォルトとなるので、こっちのほうが便利かも。

パンくずリスト

パンくずリストの作成については、以下のサイトを参考に。

maku77.github.io

2018年12月18日(火)

Middleman

急遽静的Webページを作ることになった。元々あるPukiWikiのデータを移行するのが目的。JekyllにするかMiddlemanにするかでちょっと悩んだけれども、

  • Jekyllの日付ベースのサイト構成は今回のケースには合わないのではないか?

という判断の元、今回はMiddlemanにすることにした。

使用バージョン

今回使用したのは4.2.1。

インストール

何はともあれインストール。

$ gem install middleman

でOK。

Middleman: Installation

サイトの作成

次にプロジェクトページを作る。

$ middleman init プロジェクト名

でプロジェクト名のディレクトリができ、そこにGemfileやらconfig.rbなどが作られる。

Middleman: Starting a New Site

記事を書いていく

sourceディレクトリ以下に記事やレイアウト、CSSなどを書いていく形。

Middleman: Directory Structure

記事はデフォルトではerbで書くようだが、Markdownでも書ける。config.rb

set :markdown_engine, :redcarpet
set :markdown, :fenced_code_blocks => true, :smartypants => true

という記述をし、Gemfilegem 'redcarpet'を追加してbundle installすればOK。記事のフィアル名をhoge.html.mdとかにするとMarkdownとして解析される。

Middleman: Template Engine Options

リリース

HTMLを吐かせるのは

$ middleman build

でOK。

Middleman: Build & Deploy

雑感

ドキュメントがかなり整備されているので特に戸惑うことなくサクサク進むことができた。

このあとはレイアウトページを作る必要があるのだが、もらったレイアウトがTableレイアウトなのではてさてどうしようかなと思っているところ。

2018年12月17日(月)

寒さが一段落...って言われているけど、全然そんな感じがしない

Tabulator

MOONGIFTさんが紹介しているJavaScriptライブラリ「Tabulator」。すげぇ、すげぇ。

www.moongift.jp

こういうJavaScriptライブラリ、すごく魅力的なんだけれども、この「Tabulator」自身に振り回される未来が頭を過るのはなんでだろう。もっとJavaScript力を鍛えなければって感じかな。

2018年12月16日(日)

ふつうのJavaアプリ開発のための自動テスト戦略

最近(ここ半年ぐらい)、会社で自動テストを普及させることが業務の一つになっているんだけれども、なるほどこう整理するのかと合点いったスライド。

speakerdeck.com

まずは割れ窓理論で壊れたまんまにしていることを解決することだよなあ。

その後、テストのスコープをきちんと定めること。「単体テスト」という一般用語だけではなくちゃんと定義すること。Google Testing Blogにある「Test Sizes」の内容、これがかなりスッキリする感じ。

testing.googleblog.com

ただ、これを実戦投入しようとすると、キレイにクラス設計・メソッド設計・メソッド分割できているわけではないので、プロジェクトごとに最適解を考える必要がありそう。特にSmallのものをやろうとしてモックだらけになって「あれ?なんのテストしているんだっけ?」ってケースに陥りそうで怖い。

2018年12月15日(土)

めっちゃ寒い。今週耐えれば来週はちょっと暖かくなるらしいけど、本当かなあ。

Rails のスレッドとコード実行

安川さんのツイートから。

スレッドについては避けて通ってきた道だけれども、ここらでちゃんと学んでおきたい。母語である日本語で読めるのは大きい。ありがとう安川さん。

railsguides.jp

2018年12月12日(水)

メニューに表示される記号

mac歴15年ほどですが、未だにcommandやoptionキーなどの装飾キーの記号をみると「あれ?どのキーだっけ?」って悩みます。

Finderのヘルプで「メニューに表示される記号」という項目で検索すると出てきますが...そもそもそのキーワードが思いつかない。

f:id:miyohide:20181212225810p:plain
メニューに表示される記号

個人的に把握できていないのがoptionキー。なんで「⌥」な記号なんだろう。