
Vibe Codingã§äœã£ãã³ãŒããã¡ãããšè²ãŠãããŠãŸããïŒ
AIã§ã³ãŒããæžããæä»£ã ãããã
Claude ã ChatGPT ã«ãé¡ãããã°ãããã°ã©ãã³ã°ãããŸãç¥ããªããŠãã³ãŒããåºãŠããæä»£ã«ãªããŸããã
ããšããããåããïŒããšããäœéšãæ°æã¡ããã§ãããã
ã§ãããããªããšèµ·ããŠããŸãããïŒ
1é±éåŸã«èŠè¿ããããèªåã§æžããã³ãŒããªã®ã«èªããªãã£ã
ãã¡ãã£ãšæ©èœãè¶³ãããããšæã£ãããã©ãããããã°ãããè¿·åã«ãªã£ã
AIã«ããããä¿®æ£ããŠããšé Œãã ããé¢ä¿ãªãéšåãŸã§å€ãã£ãŠãã
ãããã³ãŒãããåããã ãã§ãè²ãŠãããç¶æ ãã«ãªã£ãŠããªãããã«èµ·ããããšãå€ããã§ãã
ãã®ãè²ãŠãããç¶æ ãã«è¿ã¥ããããã®äœæ¥ãããªãã¡ã¯ã¿ãªã³ã°ãšèšããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ã£ãŠäœãããããšïŒ
äžèšã§ãããšããåãã¯ãã®ãŸãŸã§ãã³ãŒãã®èªã¿ããããçŽãããããäžããããšã ã§ãã
æ°ããæ©èœã远å ããããã§ãããã°ãçŽãããã§ããããŸãããã³ãŒãã®ãèŠãç®ãšæ§é ããæŽããããšã§ããéšå±ã®æš¡æ§æ¿ãã«è¿ããããããŸãããç©ã¯åãã§ããé 眮ãå€ããããšã§äœ¿ãããããªãããã®æèŠã§ãã
AIãçæããã³ãŒãã¯ãåãããšããåªå ããã®ã§ããããªç¶æ ã«ãªããã¡ã§ãã
倿°åã `x` ã `tmp` ã `data2` ãªã©ãæå³ãããããªã
1ã€ã®é¢æ°ãããããªããšããããããŠãã
åããããªåŠçããã¡ãã¡ã«ã³ãããããŠãã
ã³ãŒãã®äžã«çªç¶ `0.1` ã `18` ãšãã£ãæ°åãåºãŠãã
ããèªäœã¯AIã®æ§è³ªäžããããªãããšã§ãæªãããšã§ã¯ãªãã§ãããã ãé·ã䜿ãã³ãŒãã§ããã°ããããå°ãæŽããŠãããšåŸãã©ã¯ã«ãªããŸãã
åå1ïŒååã¯ãæå³ãããããã®ãã«ãã
ã³ãŒãã®èªã¿ãããã¯ã倿°åã»é¢æ°åã§ã»ãŒæ±ºãŸããŸãã
ããããç¶æ ïŒBeforeïŒ
# Python
def calc(d, r):
x = d * r / 100
return d - x# R
calc <- function(d, r) {
x <- d * r / 100
d - x
}`d` ã£ãŠäœïŒ`r` ã£ãŠäœïŒ`x` ã¯ïŒãã³ãŒããæžããçŽåŸã¯ããã£ãŠããŠãããã°ãããããèªåã§ãããããªããªããŸãã
èªããç¶æ ïŒAfterïŒ
# Python
def apply_discount(original_price, discount_rate_percent):
discount_amount = original_price * discount_rate_percent / 100
return original_price - discount_amount# R
apply_discount <- function(original_price, discount_rate_percent) {
discount_amount <- original_price * discount_rate_percent / 100
original_price - discount_amount
}ãå
ã®å€æ®µããå²åŒé¡ãåŒããŠããããšããã®ããã³ã¡ã³ããªãã§äŒãããŸããããRã¯æåæ°ãå°ãªããŠãåããšããè¯ãã倱ãããŸããã誰ãèŠãŠãããããšããç¹ã§ã¯ãã®ããã«åãã倿°åãšé¢æ°ã®æŽ»çšãå¿
èŠã ãªãšæããŸãã
ïŒå人çã«ã¯Rã®PythonåãšåŒãã§ããŸãïŒ
ååã®ã€ãæ¹ã®ç®å®ïŒ
倿°ã¯ããããäœãããåè©ã§ â `user_age`ïŒãŠãŒã¶ãŒã®å¹Žéœ¢ïŒã`total_sales`ïŒåèšå£²äžïŒ
颿°ã¯ãäœããããããåè©ã§ â `calculate_tax`ïŒçšãèšç®ããïŒã`filter_users`ïŒãŠãŒã¶ãŒãçµã蟌ãïŒ
ã¯ã/ãããã§çãããããã®ã¯ `is_` ã `has_` ã§å§ãã â `is_valid`ïŒæå¹ãïŒã`has_permission`ïŒæš©éããããïŒ
åå2ïŒ1ã€ã®é¢æ°ã«ã¯1ã€ã®ä»äºã ã
AIã«ãŸãšããŠãé¡ããããšã1ã€ã®é¢æ°ã«ãèªã¿èŸŒã¿ããæŽåœ¢ããåºåããå šéšå ¥ãããšããããŸãã
ãŸãšããŠè©°ã蟌ãŸããç¶æ ïŒBeforeïŒ
# Python
def process_sales_data(filepath):
import pandas as pd
df = pd.read_csv(filepath) # èªã¿èŸŒã¿
df = df.dropna() # 空æ¬ãé€ã
df['total'] = df['price'] * df['quantity'] # åèšãèšç®
df = df[df['total'] > 0] # çµã蟌ã¿
print(df.groupby('category')['total'].sum()) # 衚瀺
df.to_csv('output.csv', index=False) # ä¿å# R
process_sales_data <- function(filepath) {
df <- read.csv(filepath)
df <- na.omit(df)
df$total <- df$price * df$quantity
df <- df[df$total > 0, ]
print(aggregate(total ~ category, data = df, FUN = sum))
write.csv(df, "output.csv", row.names = FALSE)
}ããã ãšã衚瀺ã®éšåã ãå€ãããããä¿åå ãå€ãããããšãããšãã«ãå šéšãèªã¿è§£ããªããšãããŸããã
圹å²ãåããç¶æ ïŒAfterïŒ
# Python
def load_sales_data(filepath): # ããŒã¿ãèªã¿èŸŒã
import pandas as pd
return pd.read_csv(filepath)
def clean_sales_data(df): # ããŒã¿ãæŽãã
df = df.dropna()
df['total'] = df['price'] * df['quantity']
return df[df['total'] > 0]
def summarize_by_category(df): # ã«ããŽãªå¥ã«éèšãã
return df.groupby('category')['total'].sum()
def save_data(df, output_path): # ä¿åãã
df.to_csv(output_path, index=False)
# 䜿ãåŽã§ã€ãªãã ã
raw = load_sales_data('sales.csv')
clean = clean_sales_data(raw)
print(summarize_by_category(clean))
save_data(clean, 'output.csv')# R
load_sales_data <- function(filepath) {
read.csv(filepath)
}
clean_sales_data <- function(df) {
df <- na.omit(df)
df$total <- df$price * df$quantity
df[df$total > 0, ]
}
summarize_by_category <- function(df) {
aggregate(total ~ category, data = df, FUN = sum)
}
save_data <- function(df, output_path) {
write.csv(df, output_path, row.names = FALSE)
}
# 䜿ãåŽã§ã€ãªã
raw <- load_sales_data("sales.csv")
clean <- clean_sales_data(raw)
print(summarize_by_category(clean))
save_data(clean, "output.csv")颿°ãå°ãããªããšãAIã«ããã®é¢æ°ã ãçŽããŠããšé Œã¿ããããªãã®ãå¬ããå¯ç£ç©ã§ãã
ä»ãŸã§ã¯Rã§èªåã®æãããŸãŸã§ã³ãŒããæžããŠããŸãããïŒãããå¿«æã§ãããïŒããªãã¡ã¯ã¿ãªã³ã°ã§ã¯äžæ©äžãã£ãŠèª°ã§ãåãã圢ã§ãå¿
èŠãªåŠçã颿°åããããšã§ãä»è
ãšå
±æå¯èœãªåœ¢ã§èŠèŠåããããšãã§ããã®ã§ããã®å€åã¯åãå
¥ããªããšãããªãããªããšèªåèªèº«ãè€éãªæ°æã¡ã§ãããªããæããŠããŸãã
åå3ïŒåãã³ãŒãã2åæžããªã
åããããªåŠçãã³ããããŠãããšãä¿®æ£ãããšãã«ãå
šéšçŽããªããšãããªããåé¡ãèµ·ããŸããããã1ç®æçŽãå¿ãããšãããã ãå€ãåãã«ãªã£ãŠããŸããŸãã
Rã§ã¯ããããïŒãšå
±æããã ããæ¹ãçµæ§ããã®ããªãšæã£ãŠããŸãã
ã³ãããå¢ããç¶æ ïŒBeforeïŒ
# Python
print("==========")
print("売äžã¬ããŒã")
print("==========")
# ...åŠç...
print("==========")
print("åšåº«ã¬ããŒã")
print("==========")# R
cat("==========\n")
cat("売äžã¬ããŒã\n")
cat("==========\n")
cat("==========\n")
cat("åšåº«ã¬ããŒã\n")
cat("==========\n")1ç®æã«ãŸãšããç¶æ ïŒAfterïŒ
# Python
def print_header(title):
line = "=" * 10
print(f"{line}\n{title}\n{line}")
print_header("売äžã¬ããŒã")
print_header("åšåº«ã¬ããŒã")# R
print_header <- function(title) {
line <- strrep("=", 10)
cat(line, "\n", title, "\n", line, "\n", sep = "")
}
print_header("売äžã¬ããŒã")
print_header("åšåº«ã¬ããŒã")ãåºåãç·ã20åã«ãããããšãªã£ãŠãã`10` ã `20` ã«çŽãã ããããã DRYååïŒDon't Repeat YourselfïŒåãããšãç¹°ãè¿ããªãïŒã®èãæ¹ã§ãã
åå4ïŒè¬ã®æ°åã«ååãã€ãã
ã³ãŒãã®äžã«ãããªã `18` ã `0.1` ãåºãŠããŠãããããäœãæå³ãããããããŸãããããããããžãã¯ãã³ããŒïŒéæ³ã®æ°åïŒããšåŒã³ãŸããéæ³ã¿ããã«æå³äžæããšããç®èã§ãã
æå³ãããããªãç¶æ ïŒBeforeïŒ
# Python
if user_age >= 18:
price = base_price * 0.9# R
if (user_age >= 18) {
price <- base_price * 0.9
}`18` ã£ãŠæäººå¹Žéœ¢ïŒ `0.9` ã£ãŠå²åŒïŒ äœã®å²åŒïŒ
ååãã€ããç¶æ ïŒAfterïŒ
# Python
ADULT_AGE = 18
DISCOUNT_RATE = 0.1
if user_age >= ADULT_AGE:
price = base_price * (1 - DISCOUNT_RATE)# R
ADULT_AGE <- 18
DISCOUNT_RATE <- 0.1
if (user_age >= ADULT_AGE) {
price <- base_price * (1 - DISCOUNT_RATE)
}ååãã€ãããšã仿§ã®èª¬æãã«ããªããŸããå²åŒçãå€ããããšããã`DISCOUNT_RATE` ã1ç®æçŽãã ãã§OKã§ãã
åå5ïŒã³ã¡ã³ãã¯ããªãããæžã
ã³ã¡ã³ãã§ãããã¡ãªã®ããã³ãŒãã®å 容ããã®ãŸãŸæ¥æ¬èªã«ããŠããŸããã¿ãŒã³ã§ããã§ããèªãã°ãããããšãã³ã¡ã³ãã«ããŠãæå³ããããŸããã
ã³ãŒãã®ç¹°ãè¿ãã«ãªã£ãŠããã³ã¡ã³ãïŒããããäŸïŒ
# Python
# ãŠãŒã¶ãŒã®å¹Žéœ¢ãååŸãã
user_age = get_user_age()
# 18以äžãã©ãã確èªãã
if user_age >= 18:
passã³ãŒããèŠãã°ããããŸããããããã ãšã³ã¡ã³ããéªéã«ãªãããšãããããŸãã
ããªãããããŠãããããæžããã³ã¡ã³ãïŒè¯ãäŸïŒ
# Python
user_age = get_user_age()
# é
çšæ³ã®èŠä»¶ã«ããã18æ³æªæºã«ã¯ã¢ã«ã³ãŒã«ååã衚瀺ããªã
if user_age >= 18:
show_alcohol_products()# R
user_age <- get_user_age()
# é
çšæ³ã®èŠä»¶ã«ããã18æ³æªæºã«ã¯ã¢ã«ã³ãŒã«ååã衚瀺ããªã
if (user_age >= 18) {
show_alcohol_products()
}ããªããã®æ¡ä»¶ãªã®ããããªããã®å€ãªã®ãããšããèæ¯ããããã³ã¡ã³ãã«æžã䟡å€ã®ããããšã§ãã
AIãšã®äžæãªä»ãåãæ¹
ãªãã¡ã¯ã¿ãªã³ã°ãAIã«æäŒã£ãŠããããŸãããããªãµãã«äœ¿ãåãããšäŸ¿å©ã§ãã
 ã³ãŒããäœããšã : ããããããã³ãŒããæžããŠã
 æŽãããšã : ããã®ã³ãŒããèªã¿ãããçŽããŠã倿°åãšé¢æ°ã®åå²ãæèããŠãÂ
 確èªãããšã :ããã®ã³ãŒãã®åé¡ç¹ãæããŠãÂ
ããšããããåãã³ãŒããäœã£ãŠããããâãåäœç¢ºèªãâãèªã¿ãããçŽããŠãããããã®ãµã€ã¯ã«ãåãã ãã§ã ãã¶å€ãããŸãã
ã¿ã€ãã³ã°ã¯ãã€ãããïŒ
äœã远å ããããšãã«ããã®åã«ã¡ãã£ãšæŽãã
ãã°ãçŽãããšãã«ãåšããèŠçŽããŠã¿ã
ãèªã¿ã«ãããªããšæãããšããããããµã€ã³ã§ã
æåããå®ç§ãªã³ãŒããç®æãå¿ èŠã¯ãªãã§ãããè§Šãã€ãã§ã«å°ãæŽãããç¿æ £ã§ååã§ãã
ãŸãšã
æå³ã®ããåå | ååãèŠãã ãã§äœããããããã«ããÂ
1颿°1ä»äº | 1ã€ã®é¢æ°ã«è©°ã蟌ã¿ãããªãÂ
ç¹°ãè¿ããªãïŒDRYïŒ | ã³ãããã颿°ã«ãŸãšããÂ
宿°ã«ååãã€ãã | è¬ã®æ°åããã®ãŸãŸæžããªãÂ
ã³ã¡ã³ãã¯ããªãã | èŠãã°ãããããšãããèæ¯ãæžãÂ
Vibe Codingã¯ãçŽ æ©ã圢ã«ãããã®ã«æ¬åœã«åŒ·ãããŒã«ã§ãããã ãäœã£ãããšã«å°ãã ããæŽãããæèãæã€ãšã1ã¶æåŸã®èªåãAIããã£ãšå©ãããŸãã
ãç¥ã£ãŠãã€ãããã§ããæå€ãšå®è·µã§ããŠããªãããšãå€ãã®ããªãã¡ã¯ã¿ãªã³ã°ã§ãããã²äžåºŠãæå ã®ã³ãŒããèŠçŽããŠã¿ãŠãã ããã
åèã«ãªã£ãããã¹ãããã©ããŒãããã ãããšå¬ããã§ãã