Skip to content

Instantly share code, notes, and snippets.

View rikuTanide's full-sized avatar

riku tanide rikuTanide

View GitHub Profile
@rikuTanide
rikuTanide / pure_function.dart
Last active October 8, 2017 03:12
純粋関数の割合を最大化
/** Original **/
void method1() {
var fuga = hoge(); // 何かしらの複雑な処理
method2();
}
void method2() {
var fuga = hoge(); // 何かしらの複雑な処理
method3();
}
@rikuTanide
rikuTanide / for3.dart
Last active October 9, 2017 12:14
まずフォローしているユーザーを配列に抽出してから続きの作業をする
/// followは全ユーザのフォロー・フォロワーの関係が入っているリスト
List<Tweet> tweets(String uid, List<Follow> follows, List<Tweet> tweets,
List<ReTweet>reTweets) {
var result = <Tweet>[];
// フォローしているユーザのUserIDを抽出
var followUserIDs = <String>[];
for (var follow in follows) {
if (follow.from != uid) {
followUserIDs.add(follow.to);
@rikuTanide
rikuTanide / for2.dart
Last active October 9, 2017 12:15
二つのFor文に分ける
/// followは全ユーザのフォロー・フォロワーの関係が入っているリスト
List<Tweet> tweets(String uid, List<Follow> follows, List<Tweet> tweets,
List<ReTweet>reTweets) {
var result = <Tweet>[];
// フォローしているユーザのTweetを抽出
for (var follow in follows) {
// 自分がフォローしている人だけを通す
if (follow.from != uid) {
continue;
@rikuTanide
rikuTanide / for1.dart
Last active October 9, 2017 12:16
一つのFor文で全部やる
/// followは全ユーザのフォロー・フォロワーの関係が入っているリスト
List<Tweet> tweets(String uid, List<Follow> follows, List<Tweet> tweets,
List<ReTweet>reTweets) {
var result = <Tweet>[];
for (var follow in follows) {
// 自分がフォローしている人だけを通す
if (follow.from != uid) {
continue;
}
// フォローしているユーザのTweetを抽出
@rikuTanide
rikuTanide / for4.dart
Created October 9, 2017 12:21
山ごとに小分けの関数にする
List<Tweet> tweets(String uid, List<Follow> follows, List<Tweet> tweets,
List<ReTweet>reTweets) {
var result = <Tweet>[];
// フォローしているユーザのUserIDを抽出
var followUserIDs = getFollowUserIDs(follows, uid);
// フォローしているユーザのTweetを抽出
result.addAll(getTweets(followUserIDs, tweets));
@rikuTanide
rikuTanide / state2.dart
Created October 12, 2017 13:56
状態変数の読み込みと書き込みを局所化
class State {
bool aisatu = false;
int onigiriPrice = 100;
}
var state = new State();
void onMessage(String message) {
state = updateState(state, message);
}
@rikuTanide
rikuTanide / state1.dart
Last active October 12, 2017 13:56
状態変数にいろんなところからアクセスしている
bool aisatu = false;
int onigiriPrice = 100;
void onMessage(String message) {
switch (message) {
case "こんにちは":
onAisatu();
return;
case "おにぎり3個ください":
onOnigiriRequest();
@rikuTanide
rikuTanide / normalize1.dart
Created October 14, 2017 13:43
正規化していない
class Video {
String videoID;
List<String> playedUsers;
}
class User {
String userID;
List<String> playedVideos;
}
@rikuTanide
rikuTanide / normalize2.dart
Created October 14, 2017 13:47
正規化した
class Video {
String videoID;
}
class User {
String userID;
}
class PlayEvent {
String userID;
@rikuTanide
rikuTanide / bootcamp1.rb
Created April 29, 2019 12:10
HTML送信中にスクリプトが届く
#!/usr/bin/env ruby
require "socket"
require 'thwait'
server = TCPServer.open(3000)
htmlsoc = server.accept
threads = []