당신이 본 것 중 가장 인상적인 프로그래밍 업적은 무엇입니까? [닫은]


26

최고의 프로그래머는 평균보다 몇 배나 더 좋을 수 있다는 오래된 속담을 누구나 알고 있습니다. 나는 개인적으로 좋은 코드와 프로그래머를 보았지만 결코 터무니없는 것을 보지 못했습니다. 질문은, 당신이 본 적이 있거나 들어 본 프로그래밍의 가장 놀라운 업적은 무엇입니까?

다음을 통해 인상적인 것을 정의 할 수 있습니다.

  1. 작업의 범위, 예를 들어 John은 자신의 회사를위한 프레임 워크를 수동 으로 개발했는데, 이는 다른 200 명의 직원이 수행 한 작업과 비슷한 범위의 작업입니다.

  2. 속도 예 스투는 자신의 C 컴파일러와 쉘 명령 행 도구를 포함 weekened 온 전체 실시간 멀티 태스킹 응용 프로그램 OS를 프로그램

  3. 복잡성 ( 예 : Jane)은 전체 클러스터 서버에서 작동하도록 전체 1,000 만 LOC 앱을 재구성했습니다. 그리고 그녀는 오후에 그것을했다.

  4. 품질, 예를 들어 Charles의 코드는 LOC 당 결함 비율이 회사 평균보다 100 배 낮았습니다. 또한 그는 코드를 깨끗하고 이해할 수있었습니다.

분명히, 이러한 특징들이 더 많이 결합 될수록, 각각의 특성이 더 극단 일수록, 그 성과는 더욱 인상적입니다.

자, 내가 보자. 당신이 이야기 할 수있는 가장 터무니없는 업적은 무엇입니까? 가능한 한 자세히 설명하고 도시의 전설이나 과장을 피하십시오. 실제로 보증 할 수있는 내용 만 게시하십시오.

보너스 질문 :

  1. 그녀의 과업이 일의 일 이었습니까, 아니면 개인이 사람들을 정기적으로 놀라게 했습니까?
  2. 이러한 인상적인 성능을 어떻게 설명합니까?
  3. 프로그래머는 그러한 훌륭한 일을 어떻게 인정 했습니까?

5
한때 남자 벤치 프레스 2 KLocs를 보았습니다 ... (죄송합니다, 저항 할 수 없었습니다)
DevSolo

"스피드, 예를 들어 Stu는 자체 C 컴파일러 및 셸 명령 줄 도구를 포함하여 한 주에 전체 실시간 멀티 태스킹 앱 OS를 프로그래밍했습니다."-Erm.
Jas

지금까지의 답변을 바탕으로 어떤 사람들은 쉽게 감동을받습니다. 나는 여기에 나열된 많은 '공적'을 수행했습니다.
Steven Evers

흠, 나는 이것을 어제 정확히 복제하는 것에 대해 생각하고 있었다.
mlvljr

@DevSolo Hey, 이것이 우리가 말하고있는 천공 카드 또는 롤 용지라면, 그것은 물리적 인 위업이 될 수 있습니다.
Mark C

답변:


39

공식적으로 보증 할 수는 없지만, 거의 항상 어셈블리 언어로 Rollercoaster Tycoon을 개발하는 Chris Sawyer에게 깊은 인상을 받았습니다 .


4
그건 미친 짓이야!!!
nanda

1
-.- +27이 사이트에서 이미 2 번 이상 토론 한 내용이 있습니다.
Mark C

31

빠른 역 제곱근 . 누군가 그런 것을 생각 해낼 수있는 방법은 완전히 저를 넘어선 것입니다.


1
흠 ... 그것은 (매우) 영리 할 수도 있지만 6 줄의 코드와 훨씬 더 큰 앱의 작은 빌딩 블록과 같습니다. 내가 열거 한 치수 중 어느 것이 극단적인지 이해하지 못합니다.
David Reis

11
David Reis, 이것은 독창적 인 방식으로 중대한 병목 현상을 최적화 할 가능성이 높습니다. 행 수를 작성하는 데 필요한 작업량과 혼동하지 마십시오.

2
@David, 나는 당신이 프로그래밍 업적을 매우 짧은 시간 안에 수행해야한다고 주장하는 이유를 모른다?

2
그렇습니다. 하루에 작성된 600 줄의 코드와 100 일 동안 만들어진 6 줄의 코드 중 어느 것이 더 낫습니까? 후자라고 생각하지만 마일리지가 다를 수 있습니다.
Joonas Pulakka

6
@David, 나는 어떤 문제가 무한한 시간에 해결 될 수 있다는 것에 동의하지 않습니다. joelonsoftware.com/articles/HighNotes.html 을 읽으 십시오 . "좋은 프로그래머 몇 명 대신 많은 평범한 프로그래머를 사용하는 데있어 실제 문제는 아무리 오래 일하더라도 위대한 프로그래머가 생산할 수있는 것만 큼 좋은 것을 생산하지 못한다는 것입니다."

16

초기 아케이드 게임.

메모리, 처리 능력, I / O에 의해 완전히 제한됨 ...

이 환경에서 프로그래머가 달성 한 것은 놀랍습니다.

예 : 팩맨-완벽합니다. 이 세월이 지난 후에도 여전히 플레이 가능합니다.


2
팩맨은 아주 완벽 하지 않습니다 . 레벨 카운터가 1 바이트를 넘으면 꽤 나빠집니다. ;)
Mason Wheeler

우수한! Wikipedia에 따르면 : "Pac-Man에는 유명한 팩 스크린이 있으며 종종 팩맨 폭탄 스크린이라고도합니다. 게임의 레벨 카운터는 단일 8 비트 바이트이므로 256 개의 고유 값만 저장할 수 있습니다 (0-255). 256 레벨에 도달하면 과일을 그리는 동안 사용되는 카운터가 0으로 오버플로되어 256 개의 과일과 7 개의 빈 공간이 그려 지지만 패치로 고정 될 수 있습니다. "
Conor

1
초기 우주 왕복선일까요 ???
Job

Pac-Man은 훨씬 우수했습니다
Tim Goodman

1
@Mason, 당신은 심지어 티셔츠에 그것을 얻을 수 있습니다! errorwear.com/shirt-pacman.php

15

하나 이상의 일에 대해 다음을 수행 한이 프로그래머가 있습니다.

가장 최근의 예는 우리 그룹에서 3 명으로 지정된 프로젝트였습니다. 6 개월 일정 (매우 공격적인 타임 라인)을 가진 복잡한 LOB 앱이었습니다.

일주일에 코딩이 시작되었고, 3 명 중 1 명이 (개인적인 이유로) 금연했고 또 다른 사람은 매우 갑작스러운 병가로 떠났습니다. 남은 고독한 프로그래머는 집에 가서 프로그래밍을 시작했고 3 개월 후에 완성 된 신청서를 제출했습니다.

편집하다

설명을 추가하기 만하면됩니다. 결과 코드는 거의 완벽하고 요구 사항을 충족 시켰으며 QA 그룹은 3 가지 결함 만 문서화 할 수있었습니다.


그 위업을 풀기 위해 100 시간 이상 일주일을 잡아야했습니다. 나는 그 / 그녀가 많은 카페인을 겪었을 것입니다.
알리

3
신화적인 남자 달의 행동. 프로젝트에서 2 명을 떼십시오 == 타임 라인을 반으로 줄이십시오! 집중된 한 명의 개발자가 3 명을 조율하는 것보다 더 빨리 일을 처리 할 수 ​​있다는 것이 합리적입니다.
CodexArcanum

만약 그 사람 이 회사를 나쁜 조건 으로 떠나게되면 (지식 타협 기간없이), 회사는 큰 어려움에 처하게 될 것입니다 ...
Onion-Knight

3
@bjarkef-코드는 최고 수준입니다. 이 코더는 우리 회사의 최고의 프로그래머이며 매우 짧은 시간 프레임으로 인해 일반적으로 얻는 품질이 떨어지지 않았습니다.
Walter

1
@Walter, 실제로 필요할 때까지 정확하게 계산할 수는 없습니다. 숫자가 필요할 때 모순됩니다. 이렇게하면 이전에 작업을 수행했을 때 동쪽으로 추정하고 알 수없는 경우 어려워집니다. A가 클라이언트를 과소 평가 하지 않는 한 , 예상보다 싼 결과를 얻게되어 기쁠 것입니다.

13

어쩌면 나는 내 나이를 보여줄지 모르지만 정말 인상적인 프로그래밍의 위업 중 일부는 무시되고 있다고 생각합니다.

스티브 워즈니악, 애플 디스크 II / RWTS

Steve는 하드웨어의 많은 복잡성과 비용을 제거하기 위해 소프트웨어의 멋진 트릭을 사용하여 하드웨어와 소프트웨어를 함께 설계했습니다. 일반적인 플로피 디스크 드라이브는 디스크 허브 근처에 LED와 포토 센서를 사용하여 디스크 인쇄물에 구멍을 뚫었습니다. 광 센서의 출력은 프로세서 인터럽트에 연결되어 프로세서가 타이밍 루틴을 시작하여 트랙의 올바른 섹터가 읽기 / 쓰기 헤드 아래에있을 때까지 기다릴 때를 알 수 있습니다 (몇몇 "하드 섹터 디스크"는 사용됨) 그것은 트랙의 시작을위한 하나가 아니라 각 섹터의 시작을 알리는 구멍을 가졌다).

Steve는 디스크의 임의 지점에서 읽기를 시작하고 데이터 자체를 디코딩 할뿐만 아니라 트랙의 위치 (논리적 위치)를 파악할 수있는 방식으로 데이터를 인코딩하도록 소프트웨어를 설계함으로써 하드웨어를 제거했습니다. Disk II 드라이브에는 LED / 포츠 센서가 설치되어 있지 않으며 플로피 디스크의 구멍을 완전히 무시했습니다.

Gordon Letwin, HPFS

Gordon Letwin은 OS / 2 팀의 설계자 (및 코더)였습니다. 적어도 내가 이야기를 들었을 때, 어느 시점에서 그는 물건을 피하기 위해 휴가를 갔고 요트에서 3 주 정도 항해를했습니다 (예, 초기 MS 직원은 그런 것들을 감당할 수있었습니다 ... ) ...하지만 너무 지루해지지 않기 위해 랩톱을 가지고 가기로 결정했습니다.

그가 돌아 왔을 때, HPFS는 전적으로 인텔 386 어셈블리 언어로 작성, 디버깅 및 작동했습니다. 그가 작성한 코드는 결국 OS / 2의 LAN Manager Edition에 독점적 인 "HPFS386"으로 판매되었습니다. 또 다른 팀은 "정상적인"HPFS는 OS의 정상 에디션에 포함 된 C의 버전을 작성 육개월 같은 소비 / 2 (그리고 IBM과 MS가 헤어진 후, IBM이 업데이트되고 얻을 수있는 C 코드를 재 컴파일 자신의 "HPFS386"). 이 파일이 수정 및 업데이트 된 이후에도 문제가 발생했다면 NTFS를 "HPFS 2.0"(또는 3.0)이라고 부를 수 있습니다. Microsoft의 최신 파일 시스템이 그가 설계 한 것과 여전히 밀접하게 파생되어 있다는 데에는 의문의 여지가 없습니다 .

버로우즈 B220 테이프

이것들은 객체 지향 프로그래밍의 실제 시작을 구현했습니다 (적어도 IMO). IBM 테이프 (예를 들어)에 테이프의 데이터 형식을 알려주는 "레이블"이있는 경우, Burroughs 테이프는 작은 루틴 세트를 설정하는 규칙을 개발했습니다 (아무도 누가 시작했는지는 알지 못합니다) 데이터와 형식을 이해하는 테이프를 사용하여 데이터 형식을 자세히 알지 않고도 데이터를 올바르게 조작 할 수 있습니다. 다시 말해, 테이프의 처음 몇 개의 "블록"은 기본적으로 지속적인 형태의 vtable이었습니다. 기본적으로 vtable을 메모리로 읽은 다음 정의 된 방법을 사용하여 테이프의 나머지 부분에서 데이터를 조작하십시오. 매우 깔끔하고 단순합니다 (완전히 휴대 할 수있는 것보다 약간 적은 경우).


11

John Carmack은 정기적으로 그의 장엄한 프로그래밍의 업적에 깊은 인상을 받았습니다. 한 이야기에 따르면, 그는 호텔 방에서 지루했기 때문에 주말에 랩톱에 Doom 3 조명 엔진을 썼습니다.


2
그는 동정하기 위해 실제 게임을 작성하지 않았습니다.
DeadMG

10

의심스러운 목적에도 불구하고, 여전히 MegaUpload보안 문자 솔버 사용자 스크립트에 대해 경외심 을 느끼고 있습니다. 비트 맵 디코더와 보안 문자 이미지의 문자를 인식하는 신경망이있는 JavaScript로 작성된 GreaseMonkey 스크립트이며 반복합니다.이 모든 것은 JavaScript를 사용하여 이루어집니다.


1
당신이 그들에게 주어진 제한 때문에 좋은 일을 할 수 없다는 것에 대해 신음하는 다음 사람을 보여줄 것.
Jon Hopkins

10

Miguel de Icaza-모노 프로젝트.

(그는 또한 매우 재미 있고 재치 있고 재미있었습니다. 적어도 내가 그가 본 간단한 연설에서 일부 팟 캐스트 인터뷰를 들으면서)


+1 그 남자는 쌍둥이이거나 세 쌍둥이 일 것입니다. 한 사람이 자신의 모든 신분에 참여할 수있는 방법은 없습니다.
Dan Rosenstark

8

Anders Hejlsberg : Turbo Pascal 언어 및 컴파일러 . 나는이 모든 시간이 지난 후에도 TPC는 소프트웨어 엔지니어링의 걸작이라고 생각합니다. 내가 본 것 중 가장 작고 가장 빠른 네이티브 코드 (특정 버전에서 시작하여 최적화) 컴파일러입니다. 볼랜드 파스칼 IDE에는 본질적으로 "컴파일"이 없었습니다. 코드를 수정하고 F9를 치고 프로그램이 바로 실행되는 것을 보았습니다. 8MHz 또는 12MHz 시스템이었습니다. TPC는 나중에 델파이로 발전한 후 Hejlsberg는 Microsoft에 합류하여 C #을 공동 작성했습니다.

이전 TPC 버전의 출처를 살펴보고 싶지만 불행히도 볼랜드가 열지 않은 수많은 요청에도 불구하고.

Hejlsberg의 컴파일러는 Niklaus Wirth, Algorithms + Data Structures = Programs 라는 책에서 영감을 받았습니다.


델파이는 여전히 정말 빠른 컴파일러를 가지고 있습니다. 그것이 수정 및 연속을 지원하지 않는 데서 벗어나는 이유라고 생각합니다.
Joeri Sebrechts

6

Gemplus (현재 Gemalto)의 교육 감독관은 자신의 3 개월 학부 교육 기간 동안 최초의 JavaCard 통역사 및 OS를 작성했습니다. 그는 스펙에서 직접 코드를 작성했습니다. v.2를 생산하기 위해 Gemplus는 1 년 이상 근무한 직원없이 30 명 이상의 남성 팀을 구성했습니다. 완료되었지만 제대로 된 성과를 얻지 못하면 도움을 청했으며 며칠 동안 그와 동료는 수십 병목을 지적했습니다.

Java 카드는 매우 작은 장치에서 실행되도록 설계된 Java의 하위 집합입니다. 그의 구현은 몇 MHz 클럭과 2 또는 3KB RAM을 가진 스마트 카드에서 실행되었습니다.

재밌는 일 : 그의 또 다른 개인적인 업적은 작업 트랜스에 뛰어 들어 훈련생이 방에서 소리 낸 질문에 전혀 대답하지 않은 채 갑자기 2 시간 후에 그의 일이 끝났을 때 다시 살아 나고 5 또는 10에 대답했습니다. 연속으로 질문.


1
200 명을 넘어선 것 같아요. 기억이 나지 않아 10 년이 넘었습니다. 어쨌든 나는 그에게 그 질문을 우송했다!
Gabriel

1
젠장, 그 남자는 사이보그 여야합니다 ..
mlvljr

맞습니다, 그들은 30 세 이상이었습니다 (=
Gabriel

5

나는 그것을 매우 분명하게 기억합니다. 고등학교에서는 급우가 QB45 (Quick Basic 4.5) 와 함께 몇 가지 수업으로 본격적인 드라이빙 비디오 게임을 코딩했습니다 . 수직 스크롤, 스톱워치, 수명, 레벨; 나는 완전히 충격을 받았다.


1
나는 남자가 Lisp의 텍스트 어드벤처 게임으로 그렇게하는 것을 보았습니다. 그 자체로는 인상적이지는 않지만 그 당시에 그는 ... 와우.
Michael K

5

힘내 및 / 또는 리눅스

Linus Torvalds는 운영 체제 커널과 버전 제어 시스템을 처음부터 작성했습니다. 나는 비슷한 생산성을 가진 사람을 모른다.


16
리눅스로 인기가 많기 때문에 관련된 어려움 및 / 또는 독창성을 쉽게 극복 할 수 있습니다. 거의 전적으로 기존 시스템의 복제본입니다. Linus 는 처음부터 RSX / 11, VMS 및 Windows NT를 처음부터 작성한 Dave Cutler와 비교할 때 새롭고 독특한 작업을 수행합니다 (VMS 파일 시스템 에는 버전 관리 기능이 포함되어 있습니다 ). 아직지도에 표시하지 않았습니다.
Jerry Coffin

1
VMS에 대한 찬사이지만 같은 이유로 NT를 할인해야합니다. Wikipedia는 "[...] Dave Cutler가 Windows NT를 구축하도록 이끌 었으며, 디자인의 많은 요소는 Cutler의 VMS 및 RSX-11에 대한 초기 DEC 경험을 반영합니다."라고 말합니다. 어쨌든, 나는 힘내 인상적입니다.
LennyProgrammers

@ Lenny222 : VMS와 Windows NT간에 실질적인 유사성을 찾을 수 있다는 것은 사실이지만 Linux와 같은 복제품에 가깝지 는 않습니다 . 나는 Git에 대해서도 매우 높게 생각한다. 그러나 존재하지 않는다면, 그 자리에서 잘 작동하는 적어도 두세 가지 다른 것을 생각할 수있다.
Jerry Coffin

5
Linus는 한 달 정도 Linux에서 단독으로 작업하지 않았고, 매우 성공적인 커뮤니티 프로젝트로 바뀌 었습니까? 실로 훌륭한 작업이지만, 나는 개인적 프로그래밍의 위업으로 분류하는 것이 아니라 매우 성공적인 협업 오픈 소스 프로젝트로 분류 할 것입니다.
David Reis

1
우리가 여기서 얻는 것은 집에서 리눅스를 사용하는 X 사용자가 있다는 사실입니다 ... 집에 VMS 상자가 있다고 가정합니까? 그것은 한 명의 작가가 한 작품이 아니었다는 것을 인정하십시오.
RobotHumans

5

Richard M Stallman이 내 마음의 맨 위에옵니다. 이 사람은 GNU Emacs, GCC, GDB 및 더 많은 주목할만한 프로그램에 생명을주기 시작했습니다. 그는 심지어 원래 GPL을 작성하기도했습니다. 나는 그가 18 개월 동안 동굴에 들어가서 GCC 스위트의 C 컴파일러를 만드는 150,000 줄 이상의 코드로 돌아온다는 그의 이야기에 대해 들었습니다. 그 150,000 LOC는 나중에 g ++에 기반암을 제공했습니다. Emacs는 텍스트 편집기로 시작하여 삶의 방식이되었으며 이제는 일부 사람들에게 종교가되었습니다. 오늘날에도 Emacs의 설계 원칙은 많은 성공적인 프로그램에서 사용됩니다.

Donald E Knuth의 TeX 시스템은 놀라운 프로그래밍을 생각할 때 떠오르는 또 다른 프로그램입니다.


TeXbook을 읽어보십시오. 단순한 필사자를위한 것이 아닙니다.

GPL을 작성하는 것은 놀라운 일 이 아닙니다 . Singleton으로 자신을 인정하는 것과 같습니다.
DeadMG

4

학위 과정에서 제 반 친구는 30 일 이내에 프로젝트 요구 사항으로 OS를 만들었습니다 (매우 기본이지만 플로피로 부팅하고 필요한 루틴을 수행했습니다). 기간은 필요한 읽기 / 연구 및 실제 코딩을 모두 포함합니다.

나는 os.com 메일 링리스트가 그를 며칠 안에 해내 지 않을 것이라고 말하지 말라고 그를 기억하고 또한 오전 5시에 새벽 반쯤 기뻐하는 반 의식적 상태에서 기숙사를 걷는 것을 보았습니다. :-)

그는 멋진 프로그래머입니다.


4

나는 아무 말도하지 않았지만 누군가 "루비는 위업이다"

존 맥카시 (John McCarthy)는 최초 의 상징적 표현 표현과 기계에 의한 계산 , 즉 if사람들이 진지하게 생각하기 시작한 개념이었던 1960 년에 리스프 (Lisp)를 정의한 논문을 가지고있다 . 앞서 나가는 것에 대해 이야기하십시오.


좋은 참조. 나는 컨벤션에 대한 우아함을 위해 루비로 가득 찬 사람이었습니다. 이뿐만 아니라 미리입니다
RobotHumans

1
McCarthy는 수학 기사를 작성했습니다. 나중에 실제 코드로 변환 될 수 있다는 것이 밝혀졌습니다.

1
@ Thorbjørn Ravn Andersen- "구현"과 반대로 "정의"를 사용하도록주의를 기울였습니다.
Inaimathi

@Thor 그것은 위성을 궤도 에 놓을 로켓을 만들 수 없었거나 기술이 아직 존재하지 않았기 때문에 단순히 원형 지구 동기 궤도 를 발견 (또는 발명) 한 것에 대해 Arthur Clarke의 신용을 부정하는 것과 다소 비슷 합니다.
Mark C

4

Walter Bright의 시만텍 / Zortec C ++ 컴파일러는 거대한 프로그래머 팀이 구현 한 컴파일러를 따라갑니다. 나중에, D의 디자인과 구현.




0

80 년대 컴퓨터의 8 비트 비디오 게임 프로그래머 (예 : Commodore 64), 꽤 좋은 게임은 기계 언어로되어 있으며 크기는 종종 Windows 아이콘의 비트 맵보다 작습니다. ;-) 최상의 최적화

Geos (Comdore 64 용 WYSIWYG OS)는 당시 매우 인상적이었습니다.


-2

나는 이것이 정말로 중요하다는 것을 확신하지 못한다. 그러나 루비를 개발 한 동료. 나는 언어의 우아함을 지나칠 수 없습니다. 나는 펀치 카드와 글쓰기 어셈블리로 시작한 사람이 아니기 때문에 동적 타이핑을 지원하는 첫 번째 언어라고 생각합니다.


3
다이나믹 한 타이핑을 사용한 첫 번째 언어는 아니 었습니다. 아니요, 이것을 알기 위해 펀치 카드로 시작해서는 안됩니다.
Jas

-3

David Heinemeier Hansson이 Rails를 만들고 있습니다.

Rails를 처음 설치하고 데이터베이스에 대해 테스트 사이트를 설정하고 모든 프레임 워크와 CRUD 작업을 자동으로 수행하고 테스트 사이트를 설정하면 처음으로 눈을 뜨는 것처럼 눈을 뜨기 시작했습니다. 프로그래밍을 시작하십시오. 정말 인상적이었고 그 이후로 다른 언어 / 플랫폼으로 나타나는 아이디어를 보았습니다.


이것이 어떻게 프로그래밍의 위업입니까?
David Reis

단순한 테이블을 배치하는 데 좋은 일을한다는 사실은 habtm에 속합니다 ... 추가로 데이터베이스 연결을 거의 마술처럼 보이는 db 불가지론 적 클래스 구조로 추상화하고 필요한 모든 것은 레일입니다. -d (dbtype) 번 들러는 db : create db : migrate 명령 세트를 생성하고 레이크합니다. 기지가 일할 비계를 생성하는 것이 좋습니다. 누군가가하지 루비처럼하는 것처럼 / 보이는 그들이 대회를 통해 우아함하기 위해 새로운 접근 동안이 GET 꽤 하드을 downvoted으로 레일
RobotHumans

일부 반사 후, 나는 기술력 반대로 우리가 물건의 예술적 성격에 감동했기 때문에 그것은 생각
RobotHumans

그것은 완전히 다른 사고 방식이었습니다. 모든 것이 충분하지 않고 이상적인 것이 무엇인지에 대해 전적으로 지향되었습니다. 그것은 우리 모두 웹 개발자가 Model T 포드에서 돌아 다니는 것과 같았고 갑자기 레일이 켜지고 현대 BMW였습니다. 개발자로서 사용자와 관련하여 단순성과 사용자 친 화성이 크게 변경되었으며 그 이후 몇 년 동안 이러한 아이디어를 기반으로 한 다른 많은 플랫폼을 보았습니다.
glenatron

1
충분히 공평하지만, 당신의 질문에는 그 사람의 이름, 그가 한 일, 그 일을했을 때 등이 언급되지 않습니다. "루비는 훌륭합니다". 강아지도 훌륭하지만이 질문에 대한 답은 아닙니다.
David Reis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.