Merilis proyek open source tanpa merasa malu [ditutup]

51

Saya telah bekerja sendiri pada proyek open source yang cukup besar untuk beberapa waktu dan ini mendekati titik di mana saya ingin merilisnya. Namun, saya belajar sendiri dan saya tidak benar-benar tahu siapa pun yang dapat meninjau proyek saya secara memadai.

Beberapa tahun yang lalu, saya telah merilis sedikit kode yang cukup banyak terkoyak (dalam arti kritis) di forum tempat saya merilisnya. Meskipun kodenya berhasil, kritik itu akurat tetapi brutal. Itu mendorong saya untuk mulai mencari praktik terbaik untuk semuanya dan pada akhirnya saya merasa itu membuat saya menjadi pengembang yang jauh lebih baik. Saya telah memeriksa segala sesuatu dalam proyek saya berkali-kali mencoba membuatnya sempurna sehingga saya kehilangan hitungan.

Saya percaya pada proyek saya dan berpikir itu berpotensi untuk membantu banyak orang dan saya merasa telah melakukan beberapa hal keren dengan cara yang menarik. Tetap saja, karena saya belajar sendiri, saya tidak bisa tidak bertanya-tanya celah apa yang ada dalam pendidikan mandiri saya. Cara kode saya terkoyak terakhir kali bukanlah sesuatu yang ingin saya ulangi. Saya pikir dua ketakutan terbesar saya dengan merilis proyek saya yang telah saya tuangkan berjam-jam menjadi benar-benar malu karena saya melewatkan beberapa hal yang jelas-jelas jelas karena saya belajar sendiri atau, lebih buruk lagi, melepaskannya ke suara jangkrik.

Adakah orang yang pernah mengalami situasi serupa? Saya tidak takut kritik konstruktif, asalkan itu konstruktif dan bukan hanya kata-kata kasar tentang bagaimana saya mengacau. Saya tahu ada situs ulasan kode di StackExchange, tetapi itu tidak benar-benar diatur untuk proyek-proyek besar dan saya tidak merasa seperti komunitas di sana cukup besar untuk mendapatkan umpan balik yang baik jika saya memposting bagian-bagian dari proyek saya sedikit demi sedikit (I mencoba dengan satu file). Apa yang bisa saya lakukan untuk memberikan proyek saya setidaknya beberapa ukuran keberhasilan tanpa merasa malu atau kehilangan dalam proses?

Penuh harapan
sumber
17
Ada perbedaan antara merilis kode di forum dan merilis proyek dengan sumber yang tersedia bagi mereka yang peduli. Bahkan untuk proyek open source besar dengan banyak pengguna dan pengembang potensial melihat kode, "Saya pikir kode Anda memiliki kekurangan X dan Y" jenis reaksi tampaknya jarang terjadi.
17
Dari uraian tersebut, kritik yang Anda dapatkan waktu itu beberapa tahun yang lalu menjadikan Anda seorang programmer yang lebih baik. Jadi mengapa Anda begitu takut pada kritik kali ini? Apakah Anda merasa tidak perlu menjadi programmer yang lebih baik lagi? Jika Anda ingin menjadi lebih baik, Anda harus mengesampingkan ego Anda dan mengambil beberapa ketukan.
Paul Tomblin
3
Yang keren tentang open sourcing adalah bahwa, jika orang mengeluh, Anda selalu bisa meminta mereka untuk memperbaiki masalah untuk Anda.
blueberryfields
4
Jika Anda memiliki bidang keraguan tertentu, angkat mereka di codereview.stackexchange.com .
pdr
12
BTW jika malu adalah masalah, kita tidak akan pernah memiliki proyek seperti Wordpress atau Joomla ... Lebih dari setengah blog di WP, tidak ada yang peduli dengan kualitas basis kode ...
yannis

Jawaban:

35

Kecuali jika proyek ini ditujukan untuk pengembang (misalnya: kerangka kerja pengembangan, dalam hal ini Anda INGIN mereka mengkritiknya jika itu membuat Anda belajar lebih banyak lagi), Anda tidak perlu khawatir. Tetapi meskipun begitu, ada banyak proyek open source yang ditujukan untuk pengembang yang omong kosong, namun orang-orang menyukainya karena mereka langsung ke pokok permasalahan (pikirkan Codeigniter, yang arsiteknya sangat buruk, namun ini adalah kerangka kerja php yang paling populer)

Jika itu adalah aplikasi untuk manusia biasa, mereka mungkin hanya akan peduli dengan hasilnya.

HappyDeveloper
sumber
3
+1 Dan pengembang yang kritis sebenarnya dapat mengirimkan Anda sebuah tambalan! Selalu terhormat untuk membuka pengetahuan dan upaya Anda kepada dunia :)
yati sagade
4
Benar-benar kritik apa pun adalah umpan balik yang berharga. Bahkan jika itu keras (Anda memiliki kemampuan untuk hanya melihatnya sebagai umpan balik) dan itu adalah nilai tambah bukan alasan untuk diintimidasi. :-) Banggalah dengan usaha Anda! jika itu yang terbaik yang dapat Anda lakukan, dengan pendidikan Anda, atau memahami itu HEBAT! Umpan balik apa pun yang mengikuti hanya akan membantu Anda menjadi pengembang yang lebih baik. Jujur, kode kemarin akan selalu menyedot selama Anda membaik dan berkembang.
Robert French
+1 - Terima kasih. Proyek ini untuk pengembang, tetapi Anda membuat poin bagus tentang hasil.
Semoga
1
Kode semua orang menyebalkan, terima kritik apa pun sebagai pengalaman belajar yang berharga. Jika ada orang yang mencabik-cabik Anda dengan cara yang tidak konstruktif, abaikan mereka sebagai orang idiot
David Hayes
25

Kode Anda mengalami masalah. Saya juga. Adakah yang menjawab pertanyaan ini? Kode mereka juga memiliki masalah.

Kecuali jika, katakanlah, 10 baris atau kurang, itu cacat. Mungkin tragisnya begitu.

Menjadi seorang pengembang berarti MENGHUBUNGKAN diri sendiri secara terus-menerus melawan batas kemampuan dan pemahaman Anda. Mungkin tidak seperti ini untuk SEMUA pengembang, tetapi bagi saya dan untuk yang saya tahu, kami bekerja tepat di ujung kompetensi kami hampir setiap saat. Dan Anda menghadapi itu berulang-ulang, lalu memiliki akhir pekan yang menyenangkan, lalu kembali pada hari Senin dan melakukannya berulang-ulang.

Setelah bekerja selama 15 tahun, hal yang saya setujui adalah fakta ini: Anda bukan kode Anda . Anda MENULIS kode. Penilaian kode BUKAN penilaian Anda . Kode Anda memiliki masalah, sebagian Anda tahu, sebagian tidak. Memiliki hal itu menarik perhatian Anda , kecuali Anda bisa merasa sedih. Merasa buruk tidak meningkatkan kode Anda, itu hanya membuat Anda merasa buruk.

Anda menulis kode Anda, dan Anda menulisnya sebaik Anda tahu caranya. Mungkin besok Anda akan tahu lebih banyak daripada yang Anda lakukan hari ini, tetapi hari ini Anda melakukannya sebaik yang Anda tahu. Saran saya adalah: tulis kode hari ini hari ini dan kode besok besok. Kemudian selamat menikmati akhir pekan dan kembali pada hari Senin untuk menulis kode hari Senin.

Dan Ray
sumber
24

Sebagai aturan umum, program open source memiliki tiga kelompok orang yang melihat kode sumber.

  1. Orang yang mempertimbangkan memodifikasi kode untuk membuat program bekerja sedikit berbeda untuk mereka, untuk port ke platform yang berbeda, atau sebagai titik awal untuk program mereka sendiri. Jika mereka tidak suka kode itu, mereka biasanya tidak akan menggunakan kode itu, dan Anda tidak akan pernah mendengarnya.
  2. Siswa, mencoba mempelajari cara membuat kode dalam bahasa yang Anda gunakan. Ini hampir tidak akan pernah menghubungi Anda, tetapi kadang-kadang Anda mungkin menerima email yang menanyakan mengapa Anda melakukan sesuatu dengan cara yang lain. (Agar adil, saya belum benar-benar memiliki salah satu dari e-mail ini selama bertahun-tahun. Saya pikir situs web seperti StackExchange mungkin telah menggantikan interaksi ini)
  3. Peneliti keamanan, seperti orang-orang di OpenBSD, mencoba memutuskan apakah alat Anda cukup aman untuk dimasukkan dalam distribusi mereka. Jika tidak, tetapi mereka masih ingin memasukkan program Anda, maka mereka akan menghubungi Anda untuk mencari cara untuk mengamankannya. (Dan jika program Anda menjadi populer, saya membayangkan itu mungkin akan menarik perhatian para peneliti topi hitam, yang tidak akan menghubungi Anda, apa pun yang mereka temukan.)

Di dunia nyata, orang benar-benar tidak akan membaca kode sumber Anda karena alasan lain selain ini, karena mereka tidak perlu melakukannya. Anda hanya mendapat volume umpan balik seperti itu sebelumnya karena Anda memposting kode di forum, yang menyiratkan bahwa Anda ingin menerima umpan balik pada kode tersebut.

Saya tidak berpikir Anda benar-benar perlu khawatir tentang semburan penyalahgunaan; satu-satunya orang yang mungkin menghubungi Anda sama sekali adalah orang-orang yang ingin menambahkan fitur atau memperbaiki bug, yang telah menelusuri basis kode dan belum menjalankan jeritan untuk perbukitan. ;)

Trevor Powell
sumber
5

Saya benar-benar tidak mendapatkan psikologi di balik pertanyaan ini ... pertanyaan yang lebih baik untuk ditanyakan pada diri Anda sendiri adalah "apa yang harus saya kehilangan dengan merilis perangkat lunak ini"

Bahkan jika proyek Anda penuh dengan bau kode, apakah Anda harus kehilangan sesuatu?

Sekalipun kodenya buruk dan seseorang meluangkan waktu untuk menulis surat nyala kepada Anda, coba tebak, ia mungkin menggunakan perangkat lunak Anda cukup hingga ingin membuat beberapa perubahan dan membuatnya lebih baik.

Anda harus senang tentang itu! Terima kritik dan jadikan kode Anda lebih baik, tanyakan pada pria yang marah yang meluangkan waktu untuk menulis surat kepada Anda. Dia peduli!

Setelah beberapa saat api-mail akan berhenti, orang-orang akan tetap menggunakan perangkat lunak Anda, Anda akan belajar dari kesalahan Anda dan kesenjangan yang Anda tidak tahu ada dalam pendidikan Anda tidak akan ada lagi.

Saya lebih suka bekerja dengan seseorang yang bersedia melakukan sesuatu, mengakui kesalahan mereka, memperbaikinya dan terus maju daripada seseorang yang tidak mau melakukan apa pun.

Jika Anda benar-benar tidak nyaman merilis perangkat lunak dengan nama Anda kemudian lepaskan dengan nama panggilan. Jika berhasil mengklaim itu sebagai milik Anda, jika tidak ubah nama panggilan Anda :)

Thanos Papathanasiou
sumber
+1 untuk kalimat terakhir, orang-orang di industri musik melakukan ini sepanjang waktu dengan album "eksperimental" mereka :)
MattDavey
4

Saya sangat percaya bukan hanya pada sumber terbuka, tetapi juga dalam pengembangan terbuka , di mana orang dapat melihat evolusi lengkap kode Anda. Dari prototipe berotak rambut ke kode kerja ... Anda seharusnya tidak pernah malu. Anda menempatkan diri Anda di luar sana - itu membutuhkan nyali. Pemilik dan bangga akan hal itu. Tidak ada yang sempurna.

sylvanaar
sumber
3

Semakin lama saya dalam game ini, semakin saya menyadari bahwa satu-satunya ukuran kualitas kode adalah pengalaman klien. Jika Anda sedang menulis suatu fungsi, itu adalah penelepon dari fungsi itu. Perpustakaan? Para devs yang menulis untuk perpustakaan itu. Kerangka kerja? Pengadopsi itu. Sebuah standalone? Orang atau dasmon yang meluncurkan program.

Kode yang bagus memiliki keutamaan, jangan salah paham - tetapi ketika dikatakan dan dilakukan, satu-satunya ukurannya adalah "Apakah ini berhasil?" Saya telah melihat banyak kode bersih yang merupakan kekacauan kereta, dan banyak kode gila yang benar-benar dapat diandalkan (ditambah baik bersih dan jelek juga :))

Jadi, jika kritik mengatakan kode Anda jelek, siapa yang peduli. Jika mereka mengatakan itu tidak berhasil - itu adalah kritik yang berguna (menguji data!) Yang Anda cari untuk meningkatkan program Anda. Bertahanlah, hindari populasi troll internet, dan bersenang-senanglah dengan proyek Anda!

segera
sumber
2

Saya sangat setuju dengan apa yang dikatakan poster lain: Bahkan jika kode Anda jelek dan tidak berkualitas tinggi - kebanyakan orang tidak peduli. Setiap orang yang telah beralih ke kode OpenSource pada satu waktu atau yang lain mungkin berpikir pada dirinya sendiri "WTF terjadi di sini".

Tapi saya tidak tahu ada orang di luar sana dengan motivasi untuk mengkritik basis kode proyek hanya demi mengatakan "Bung, kode Anda terlihat mengerikan!". Kita semua sudah ada di sana dan kita semua tahu bahwa kode apa pun yang kita tulis saat ini akan tampak sangat lemah untuk diri kita sendiri hanya dalam beberapa kali (milik saya pasti akan).

Jadi jangan khawatir sebanyak itu - orang hanya memiliki banyak hal yang lebih baik untuk dilakukan di waktu luang mereka daripada mengacaukan kode proyek OpenSource.

perdian
sumber
2

Kode nyata selalu busuk dan kotor, ditampar bersama dan dipelihara dengan cara yang hampir ad hoc. Pembersihan terbatas pada mendokumentasikan kasus khusus dan konstanta khusus. Ada ketidaksesuaian impedansi antara kode bersih dan dunia nyata.

Saya juga telah memperhatikan bahwa setiap insinyur yang kompeten dapat memisahkan kode orang lain.

Jika (1) ia lulus tes dan menyelesaikan tujuannya tanpa gagal DAN (2) Anda dapat membuat perubahan kecil dengan hanya menulis ulang kecil, itu kode yang baik.

Paul Nathan
sumber
2

Beberapa kata bijak dari Reid Hoffman, salah satu pendiri LinkedIn:

"Jika Anda tidak malu dengan rilis produk pertama Anda, Anda sudah terlambat."

"Mendapatkan keterlibatan dengan anggota dan melihat apa yang sebenarnya penting adalah sepenuhnya penting ... Jadi, Anda mendapatkan produk minimum yang layak secepat mungkin."

Saya pikir ini terutama berlaku untuk proyek open source di mana memiliki ide bagus dengan awal yang menjanjikan mendorong orang untuk berkontribusi dan berpartisipasi. Sesuatu yang begitu dipoles membuat Anda memakai kacamata hitam Anda mungkin tidak membangkitkan perasaan seperti itu. Tetapi hal yang paling penting tentang melepaskan lebih awal adalah untuk menghancurkan semua prasangka Anda tentang apa yang harus dilakukan dan mulai bergerak ke arah yang benar.

Allon Guralnek
sumber
1

Kamu siapa? Apakah Anda seseorang yang dikenal orang sebagai programmer Tuhan, dan khawatir reputasi Anda akan turun? Apakah Anda orang yang akan melamar pekerjaan dan khawatir bahwa majikan akan membaca kritik ini, dan berpikir bahwa Anda adalah programmer yang buruk? Yang saya tanyakan adalah mengapa Anda takut dikritik tentang bagaimana Anda mengacau. Anda harus memutuskan mana komentar asli dan kata-kata kasar. Ambil yang bagus sebagai cacat dan perbaiki di versi berikutnya. Saya hanya merasa Anda tidak perlu khawatir tentang kritik itu. Anda membantu komunitas sumber terbuka, itu sendiri adalah tujuan yang sangat baik. Silakan terus bekerja dengan baik.

Manoj R
sumber
2
Apa itu programmer Tuhan?
Semoga
1
@Berharap. Ada satu profesor di IIT Bombay University. Rumornya adalah orang ini menulis program, mengkompilasinya, dan menjalankannya. Tidak ada tahap yang dikenal sebagai kompilasi ulang atau debugging. Ini adalah programmer Tuhan.
Manoj R
Oke, saya cukup yakin itu bukan saya ... Saya obsesif tentang debugging. Perasaan yang keren ketika sesuatu hanya bekerja pertama kali. Bahkan kemudian, saya masih mengujinya dan menulis tes untuk itu.
Semoga
1

Jika Anda benar-benar khawatir, cukup gunakan nama samaran online saat merilis perangkat lunak. Maka tidak ada cara itu akan berdampak pada reputasi kehidupan nyata Anda.

Kapan / Jika Anda menerima kritik publik, itu akan mengarah pada perbaikan dalam kode dan akan membantu Anda tumbuh sebagai pengembang. Itu hal yang baik.

Saya menemukan bahwa untuk proyek-proyek saya sebagian besar kritik / saran yang konstruktif dikirim secara pribadi daripada disiarkan secara publik, dan bahkan kemudian Anda tidak akan menerima banyak komentar. Karena itu, saya sarankan untuk melakukannya saja!

Semoga berhasil.

Stewart
sumber
1

Tidak ada yang salah dengan belajar mandiri dalam dan dari dirinya sendiri. Anda tidak dapat dipisahkan dan ulasan kode rekan dapat membantu.

Anda juga perlu fokus pada apa yang Anda lakukan. Mengapa Anda peduli jika Anda mendapat umpan balik negatif pada pekerjaan Anda? Jika itu karena Anda membuat asumsi bahwa jika Anda mendapat kritik itu karena kode itu buruk atau Anda tidak pandai pemrograman, itu mungkin atau mungkin tidak benar.

Tujuan dari upaya ini adalah untuk memastikan kode bekerja dan mendapatkan kode terbaik sebanyak mungkin, tetapi dari pengalaman praktis, tidak semua kode komersial di luar sana adalah bintang juga. Terkadang Anda mendapatkan persyaratan yang buruk, terkadang Anda tidak punya waktu untuk melakukannya dengan benar. Terkadang pengembang ingin tampil sebagai jenius dengan membuat orang lain terlihat buruk.

Saya tidak percaya Anda dapat belajar tanpa membuat beberapa kesalahan, terutama jika itu adalah sesuatu yang membutuhkan disiplin dan upaya nyata. Jika itu mudah, semua orang akan melakukannya. Coba batasi kesalahan hanya untuk kesalahan kecil saja, menggunakan praktik terbaik yang sudah ada. Saya sadar itu tidak selalu mungkin!

Jika saya khawatir tentang apa yang orang lain pikirkan tentang saya sebagai seorang programmer, saya tidak akan pergi ke lapangan sejak awal. Yang sedang berkata, pandangan pertama saya pada kritik kode adalah, cobalah untuk menerimanya secara objektif dan belajar darinya.


sumber