自分で作って自分で使っているSassのユーザー定義関数をhail2u-scss-functionsという名前でBowerパッケージ化した。他人の作ったユーザー定義関数はいろいろあって使うの嫌だけど、自分のはコピペすることなく手軽に使えるようにしておくと良い気がする。
他人の作ったユーザー定義関数は、使用と運用において問題が起こることが多いと思う。
使い方や引数の型については、型違いならコンパイル時にエラーになるように書けばある程度改善するけど、バックグラウンドでコンパイルすることが多いためそれほど劇的な効果は得られない。もうちょっとエラーを包括的にデバッグできる仕組みがないと、ユーザー定義関数は自分で書いて自分で使う以外には辛そう。
関数名の問題は公開するミックスインを作る時にも波及する。便利ユーザー定義関数を作ってそれを利用して書くよりもベタに依存なしで書いてしまった方が安全確実。Sassのパーシャルの機構はそれほど柔軟じゃないし、確実でもないので。
汎用性はつまり関数の結果の更なる利用とかそういうことなんだけど、型を要求するのに型の変換が行いにくいことが足を引っ張る。なるべく汎用的にしようとするなら数字系だと単位を消して吐かないようにすると良いのだけど、今度は利用時の汎用性が失われる。
Sassのユーザー定義関数の未来は暗い。