PHPer, 루비 안 쓴 지 오래됐어.
컨텐트
내 배경
읽은 기억이 나요. 메타프로그래밍 루비 흥분했어요.
최근에 Rails에서 일해야 하기 때문에 PHPer(또는 Laraveler)가 느끼는 Rails와의 차이를 좀 쓰고 싶어요.
이미 Rails 프로젝트가 있는데 거기서 조인하는 느낌이에요.
Autoload를 몰라요.
PHP 로드
require_once __DIR__ . '/path/to/file.php'
루비 로드require "path/to/file"
여기까지는 아무 문제가 없지만 오토로드는 몰라요.PHP 시
namespace \Foo;
use \Foo\Bar\Hoge;
class Xxx extends Hoge {
}
이 같은 느낌은'반드시 써야 하는 반의 전표'라는 제한이 있어 귀찮지만'(appRoot)/Foo/Bar/Hoge.php
에 있구나'라는 것을 알 수 있다.요즘은 거의 PSR-4의 autoload라서 PSR-4를 읽으면 좋을 것 같아요.
참조: Project Euler
Ruby(Rails) 시
module Foo do
class Xxx extends Hoge
end
end
뭐!?!?!?갑자기 Hoge
어디서 나왔어!?!?!?!?호지가 누구야!?!?!?!?!
나는 대단하다고 생각한다.
https://qiita.com/inouet/items/0208237629496070bbd4
https://qiita.com/eggc/items/ae09d32df5d994522ca1
최신 버전이 어떻게 움직일지는 모르지만 "Rails가 열심히 찾고 있다"는 말에 수락했다.
이해와 동시에 "아~ 패스를 명시하고 싶구나~"하는 마음도 든다.
멋있지 않아요.
추기: 다음은'멋있지 않다'는 것에 대한 나의 오해가 대충 포함되어 있으니 무시해 주십시오.
댓글로 보내주셔서 감사합니다
PHP의 이거.
piyo(bar(foo($x)));
루비가 이렇게 돼요.piyo bar foo x
좋지만 "멋있는 게 얼마나 싫었어???"이런 마음이 가득하다.foo
매개변수가 3개일 경우piyo bar foo 1,2,3
알지만 왠지 멋있는 모습을 쓴 것 같아.piyo(bar(foo(1,2,3))
멋지다~!그렇게 생각하지만 루보캅 같은 놈은 "잘생겼다고 쓰지 마"이미 싫었어.
블락의 불협화감이 느껴져요.
[1,2,3].reject {|n| n > 2}.map {|n| n * 2}.map &:to_s
이것[1,2,3].reject do |n|
n > 2
end.map do |n|
n * 2
end.map &:to_s
이 느낌은 똑같은데 왜 두 문법으로 나뉘었을까.어느 하나면 되잖아!end.map
같은 느낌이 대단해요.회신이 없다
def hoge(x)
if x > 5
return x * 3
end
x
end
때로는 끼고, 때로는 안 끼고!!!뭐야!!!필요 없는데도 리턴을 넣었어. 루보캅이 말했다. "너 리턴 넣은 거 아니잖아!"이렇게 말해.벌써
RubyDoc이 없습니까?
최근의 PHP 모델은 물론이고 튼튼하지만 적어도 선언할 때의 불편함은 많이 사라졌다.
번역용이라기보다는 프로그래밍할 때의 도움형이라는 측면에서 매우 편리하다.
PHP7 이전 시대에도 PHP는
PHPDoc
에서 다소'모델이 무엇인지 명시하는'문화가 있었다.class Foo {
/**
* @param integer $x
* @param integer $y
* @return integer
*/
public function something($x, $y) {
return $x * $y;
}
}
이런 느낌, "내 스타일을 발표하고 싶다!!!"욕망class Foo {
public function something(int $x, int $y): int {
return $x * $y;
}
}
요즘 이렇게 시크하게 전화하니까 너무 좋네요.JS는 TypeScript 이전에도 JSDoc이 있었고, 물론 RubyDoc도 있었다.
그리고 RubyDoc은 다른 녀석이에요.문서 만드는 놈.
그런 거 아니야.
RDL이라는 녀석이 있는 것 같은데 뭐랄까...too much.
"루비의 사상적, 문화적으로 이런 유형의 선언과 사이가 좋지 않다"는 건 알지만 "파라미터가 어떻게 올지 모르는 상황이 두렵다", "에이...string을 내게 맡긴 바보가 죽을까...?"이런 마음.string이 준 녀석은 바보라는 생각이 들죠.
총결산
다른 것도 많다고 생각했지만 생각난 범위 내에서 불협화음이 느껴졌다.
루비를 말하는 게 아니라'루비의 세계관에 전혀 익숙하지 않은 나'라는 느낌이다.
한 글자를 쓰거나 Rspec의 DSL감은 독특하게 쓰는 경우도 많지만 아무래도 형 시스템 주변의 사상 차이가 크다고 생각한다.
오리구이가 누구에게 좋은지 아직 모르기 때문에 적당한 날을 기대하고 있다.
강바닥
Reference
이 문제에 관하여(PHPer, 루비 안 쓴 지 오래됐어.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takyam/items/21fa62b6d8e05f4c1817텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)