- ソフトウェアの設計について書かれた情報は世の中に多いが、その情報の多くは How であり、それだけを読んで適切に使うことが難しいと感じています。
- その直接的な理由は、How に対しての What、What に対しての How が語られることが少ないからです。
- とはいえ、やはり How だけを知っていることは危険であり、場合によってはどこにこ行きつかないということにもなります。
- How に閉じずに、目的志向で考えることは、相応の思考を要求されることではありますが、やはり必要なのです。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { DefineFunction, Schema, SlackFunction } from "deno-slack-sdk/mod.ts"; | |
import { SlackAPIClient } from "deno-slack-sdk/deps.ts"; | |
export const ConfigFunctionDefinition = DefineFunction({ | |
callback_id: "config_function", | |
title: "Config function", | |
description: "Operate the configuration of the bot", | |
source_file: "functions/config_function.ts", | |
input_parameters: { | |
properties: { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 目的: YouTube の字幕の機械翻訳の質が悪いので、DeepL を使いたい | |
// 機能: YouTube のメニューから開ける「文字起こし」の内容を動画にオーバーレイすることができる | |
// 使い方: 「文字起こし」を開いた状態で DeepL Chrome Extention でページ全体を翻訳することで、DeepL で翻訳された字幕が表示できる | |
// ※ コンソールから実行しているが、ブックマークレット形式にして使うのも良いかも | |
// ソース | |
// ------------------------------------ | |
function setupCaption() { | |
const player = document.querySelector("#movie_player") |
- 以前社内向けに行った「Protobuf 速習会」で話した内容を記事として公開します。
- JSON / RESTful API と、Protobuf / gRPC を使った開発は何が違うのか
- 経験:Wantedly People での開発を通じて何度か大規模に Protobuf を使って開発をしてきた
- 単に「型がついて嬉しい」というレベルではないメリットがあった
- 前編となるこの記事では、Protobuf を使うと開発がどういう風に変わるのかについて話している
- 後編となるこの記事では、それについての技術的な事柄や、開発フローを実現するためのいろいろな道具立て、具体的な tips について説明している
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// https://www.benricho.org/nenrei/sei-gen.all.html | |
// notion formula | |
if(prop("西暦") < 1532, | |
"未定義(<1532)", | |
if(prop("西暦") <= 1555, | |
concat("天文", format(subtract(add(prop("西暦"), 1),1532)), "年"), | |
if(prop("西暦") <= 1558, | |
concat("弘治", format(subtract(add(prop("西暦"), 1),1555)), "年"), | |
if(prop("西暦") <= 1570, |
サービス開発をするソフトウェアエンジニアを想定しています。★は読み切る難易度であり、ほぼイコールでおすすめ度。
イシューからはじめよ - ★☆☆
仕事…というか問題を解決するやり方的な本。一回さらっと読んでおいて、働きだしてしばらく立ってからもう一回読むくらいが良い読み方な気がする。
キーワード:仕事,プロジェクトマネジメント
人月の神話 - ★☆☆
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Api | |
class Preloader | |
# @param [Array] attributes fields to select. | |
# @param [Hash] associations associations to include and fields to select of them. | |
# @example When you select id and name from companies, | |
# preload_for(companies, [:id, :name], {}) | |
# @example When you includes posts and employees and employees avatar, | |
# preload_for(companies, [], {posts: {}, employees: {avatar: {}}}) | |
def self.preload_for(rel, attributes, associations) | |
unless rel.is_a?(ActiveRecord::Relation) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Api | |
class PreloadRule | |
def initialize | |
@attributes, @associations = {}, {} | |
end | |
attr_accessor :attributes, :associations | |
def attribute(name, includes:) | |
unless name.is_a?(Symbol) |
NewerOlder