こちらから持ってきました
Google のソフトウェア・エンジニアリング
「書く」のは特別な道具
[例:作成するライブラリの名前は]
[何を実現するの?]
| class DragAndDropList extends HTMLElement { | |
| constructor() { | |
| super(); | |
| this.items = []; | |
| this.draggedElement = null; | |
| this.addEventListener('dragstart', this.handleDragStart.bind(this)); | |
| this.addEventListener('dragover', this.handleDragOver.bind(this)); | |
| this.addEventListener('drop', this.handleDrop.bind(this)); | |
| this.addEventListener('dragenter', this.handleDragEnter.bind(this)); | |
| this.addEventListener('dragleave', this.handleDragLeave.bind(this)); |
| class ValidationFormBuilder < ActionView::Helpers::FormBuilder | |
| include ActionView::Helpers::TagHelper | |
| include ActionView::Context # 必須 | |
| def validation_text_field(attribute, options = {}) | |
| field_with_feedback(:text_field, attribute, options) | |
| end | |
| def validation_email_field(attribute, options = {}) | |
| field_with_feedback(:email_field, attribute, options) |
| export class SafetyFormData { | |
| constructor(form) { | |
| this.formData = new FormData(form); | |
| } | |
| append(key, value) { | |
| this.formData.append(key, this.#sanitizeValue(value)); | |
| } | |
| set(key, value) { |
| export async function requestGet(url) { | |
| const response = await fetch(url) | |
| return await response.text() | |
| } | |
| export function nextFrame() { | |
| return new Promise(requestAnimationFrame) | |
| } | |
| export function delay(ms) { |
| module User | |
| class CreatedSubscriber | |
| def call(user) | |
| puts "User created: #{user.name}" | |
| end | |
| end | |
| end |
| import Vue from 'vue'; | |
| class Vue2Island extends HTMLElement { | |
| constructor() { | |
| super(); | |
| this.vueInstance = null; | |
| } | |
| connectedCallback() { | |
| this.name = this.dataset.name |
| # user.rb | |
| class User < ApplicationRecord | |
| after_create_commit do | |
| if is_admin? | |
| AdminUserCreateLoggingJob.perform_later(self.id) | |
| end | |
| end | |
| end | |
| # ConditionをJobクラスに含めない |
| // https://twitter.com/justin999_/status/1293738518989029379?s=21 | |
| // | |
| // 1万個のarrayを高速で作る方法を考えよ。 | |
| // Swiftでいうなら、[[Int]]。 | |
| // なお、それぞれのarrayの中身はランダム、長さは7である | |
| // [ | |
| // [1, 3, 9, 0, 1, 2, 4], | |
| // [1, 9, 0, 7, 9 ,1, 2], | |
| // ....(1万個) | |
| // ] |
こちらから持ってきました
Google のソフトウェア・エンジニアリング
「書く」のは特別な道具
[例:作成するライブラリの名前は]
[何を実現するの?]
| require "./emitter.rb" | |
| Emitter.once("hello") do |param| | |
| puts "Hello World #{param}" | |
| end | |
| Emitter.emit("hello", "param") | |
| Emitter.emit("hello", "param2") |