JavaRush /Blog Java /Random-MS /Coffee break #83. Apakah ciri-ciri watak yang membezakan ...

Coffee break #83. Apakah ciri-ciri watak yang membezakan pengaturcara yang cemerlang. Panduan Pengaturcaraan Mudah: Fungsi dan Kaedah

Diterbitkan dalam kumpulan

Apakah ciri-ciri watak yang membezakan pengaturcara yang cemerlang?

Sumber: Hackernoon Apakah yang membezakan pengaturcara yang hebat daripada yang baik? Saya menemui dua ciri watak yang dikongsi oleh pengaturcara yang hebat: mereka konsisten dan berterusan. Ciri-ciri ini dalam diri mereka bukanlah tanda-tanda genius, dan jika dikehendaki, sesiapa sahaja boleh mengembangkan ciri-ciri ini dan kemudian menerapkannya dalam kerja mereka. Coffee break #83.  Apakah ciri-ciri watak yang membezakan pengaturcara yang cemerlang.  Panduan Pengaturcaraan Mudah: Fungsi dan Kaedah - 1

1. Konsisten

Pengaturcara yang baik tidak sekali-sekala memprogramkan. Sebaliknya, mereka mempunyai jadual khusus untuk meningkatkan pengetahuan dan kemahiran mereka semasa masa lapang: sebelum atau selepas bekerja dan pada hujung minggu. Sebagai contoh, seorang pengaturcara yang saya kenali menghabiskan dua jam pertama harinya—enam hari seminggu—untuk projek atau tugasan pengajian peribadi. Ini bukan untuk mengatakan bahawa orang seperti itu menulis kod sepanjang masa. Mereka, seperti kita semua, mempunyai masa untuk kehidupan peribadi, kewajipan dan kepentingan mereka. Tetapi mereka konsisten: pengaturcaraan telah menjadi kebiasaan mereka. Bagaimana anda boleh menjadi konsisten? Inilah yang ramai di antara kita cuba capai. Saya telah mendapati bahawa terdapat beberapa cara untuk melakukan ini. Mula-mula, tentukan bilangan jam seminggu yang boleh anda habiskan untuk pengaturcaraan. Nombor ini ialah "perbatuan program" mingguan anda. Sebagai bekas pelari jarak jauh, saya berlari beberapa batu setiap minggu. Ini adalah larian mingguan saya. Sekarang saya mempunyai pengalaman pengaturcaraan saya: ini ialah bilangan jam saya menghabiskan pengaturcaraan setiap minggu. Kebanyakan orang mengabaikan peringkat ini. Mereka melompat terus ke projek yang ingin mereka selesaikan atau topik yang ingin mereka pelajari, tanpa memikirkan bagaimana mereka akan mendapat masa untuk melakukannya. Akibatnya, mereka bekerja pada waktu malam atau 16 jam sehari. Terdapat masalah dengan pendekatan ini: ia tidak mampan dalam jangka panjang. Mengasah kemahiran anda sebagai pengaturcara bukanlah sesuatu yang anda lakukan sepanjang satu atau dua minggu yang sibuk. Sebaliknya, anda perlu terus bekerja untuk masa yang lama. Inilah sebabnya mengapa sangat penting untuk mengenal pasti pengalaman pengaturcaraan anda. Untuk melakukan ini, pertimbangkan untuk menggunakan log masa untuk melihat tempat dan cara anda menghabiskan masa anda. Ambil sekeping kertas dan tulis semua yang anda lakukan setiap hari dan berapa lama anda melakukannya, termasuk menyemak media sosial atau e-mel selama lima minit. Ini akan memudahkan anda mencari slot terbuka dalam jadual anda. Anda mungkin boleh mendapatkan sedikit masa tambahan untuk melakukan kerja rumah atau menonton TV. Anda kemudian boleh membuat rancangan latihan pengaturcaraan yang perlu anda patuhi. Pelan latihan adalah salah satu cara paling berkesan untuk konsisten. Ia membolehkan anda mengedarkan semua butiran terlebih dahulu. Apa yang anda perlu lakukan ialah melaksanakan rancangan ini setiap hari. Pelan latihan larian saya menggariskan berapa batu yang saya perlukan untuk berlari setiap hari dan berapa pantas saya perlu berlari. Sekarang saya membuat rancangan senaman pengaturcaraan yang mempunyai tujuan yang sama: mereka memberitahu saya perkara yang perlu saya lakukan setiap hari. Pada penghujung hari, saya membuka Evernote pada komputer saya dan membuat jadual untuk hari berikutnya. Berikut ialah contoh:
6:30 - 8:30 - Pengaturcaraan
  1. Semakan dek kad imbas Python Anki (20 minit).
  2. Menyelesaikan masalah Word Cloud Data.
Saya mengikuti proses ini sepanjang hari kerja saya: Saya menetapkan jumlah masa yang akan saya habiskan untuk tugasan dan perkara yang ingin saya capai dalam masa itu. Saya juga membuat rancangan latihan bulanan. Di dalamnya, saya menyertakan tiga perkara yang ingin saya capai, pelajari atau selesaikan pada bulan akan datang. Saya pernah membuat rancangan suku tahunan. Tetapi kemudian saya mendapati bahawa terlalu banyak boleh berubah dalam tiga bulan. Pelan bulanan membolehkan masa yang mencukupi untuk membuat langkah penting dalam latihan anda.

2. Bersikap gigih

Ciri kedua pengaturcara yang baik ialah ketekunan. Mereka bekerja melalui semua pilihan untuk menyelesaikan masalah dan mencari jawapannya. Ini nampaknya rahsianya. Pengaturcara hebat yang saya temui mempunyai keupayaan luar biasa untuk memecahkan masalah dan menghasilkan penyelesaian atau penyelesaian yang berbeza untuk situasi yang sukar. Pendek kata, mereka mempunyai sistem untuk menyelesaikan masalah. Saya tidak pernah mempunyai sistem penyelesaian di sekolah menengah. Setiap kali saya diberi masalah dalam kelas matematik, saya akan menyelam terus ke dalamnya dengan kelajuan penuh. Kemudian saya terus melakukan ini apabila saya memulakan pengaturcaraan. Tiada rancangan. Tiada sistem. Tiada masa untuk berfikir. Tiada analisis. Tidak mengejutkan, dalam kedua-dua kes saya memutar roda saya secara tidak perlu dan sentiasa menghadapi halangan. Saya kini mempunyai sistem penyelesaian masalah yang membantu saya memecahkan masalah untuk mencari pilihan yang berbeza. Sebagai contoh, langkah pertama dalam proses penyelesaian masalah saya ialah menyatakan masalah. Ini adalah yang pertama. Setelah saya memahami masalah tersebut, saya fokus pada setiap langkah berikut.
  • Analisis data input dan hasil yang dijangkakan.
  • Penciptaan algoritma tindakan.
  • Menulis pseudokod.
  • Menyelesaikan versi ringkas masalah.
Harap anda mendapat idea. Peringkatnya mungkin tidak mudah, tetapi ia boleh diuruskan. Dengan menyelesaikan masalah yang sukar, kita menjadi orang yang lebih baik. Ia juga memupuk keyakinan. Sebaik sahaja kami menyelesaikan satu masalah yang sukar, kami bersedia untuk yang baru.

3. Sikap terhadap masalah?

Dalam perjalanan untuk menjadi pengaturcara yang lebih baik, ada perkara lain yang perlu kita pertimbangkan: sikap. Anda mesti mempunyai pendekatan baru untuk masalah dan kekaburan. Pada suatu hari saya bertanya kepada pembangun kanan beberapa soalan tentang masalah yang saya tersekat. Saya hairan dan kecewa. Pada mulanya, pemaju juga hairan. Namun, jawapannya mengejutkan saya. "Wah, itu masalah yang hebat," katanya. Minatnya didorong oleh butiran yang ditemuinya. Itu bukan untuk mengatakan bahawa pengaturcara yang hebat tidak terjebak dalam beberapa masalah juga. Mereka tersekat. Tetapi perbezaannya adalah pada sikap. Pengajaran yang saya pelajari pada hari itu ialah: pengaturcara yang baik tidak takut untuk meneroka perkara yang tidak diketahui. Mereka faham bahawa mereka pasti akan mempelajari sesuatu yang baru dengan mengkaji masalah ini. Kita boleh belajar banyak dengan mempelajari pengaturcara lain. Tetapi akhirnya tanggungjawab terletak pada kita: kita perlu pergi bekerja setiap hari dan mengambil tindakan.

Panduan Pengaturcaraan Mudah: Fungsi dan Kaedah

Sumber: DZone Apakah yang menjadikan fungsi atau kaedah yang baik? Ini memerlukan gabungan faktor, yang masing-masing penting. Mari kita lihat empat daripada yang paling penting. Coffee break #83.  Apakah ciri-ciri watak yang membezakan pengaturcara yang cemerlang.  Panduan Pengaturcaraan Mudah: Fungsi dan Kaedah - 2

Nama yang bermakna

Fungsi harus mempunyai nama yang menerangkan tujuan atau fungsinya. Apabila fungsi mempunyai nama yang bermakna, ia mudah dibaca dan difahami tujuannya. Sebagai contoh, jika tujuan fungsi adalah untuk mencari pelanggan melalui ID, nama yang baik mungkin findCustomerById(id: String) . Pilihan lain boleh findCustomer(id: String) . Di sini tandatangan fungsi menunjukkan bahawa pembeli ditemui oleh IDnya. Perkataan "cari" juga membayangkan bahawa pembeli mungkin ditemui atau tidak. Jika nama fungsi ditukar kepada getCustomer(id: String) maka maknanya berubah kerana ia kini membayangkan tiada rollback; klien sama ada ditemui atau fungsi gagal dan mungkin membuang pengecualian. Kedua-dua nama adalah nama yang sah untuk fungsi, tetapi mempunyai makna yang berbeza, jadi pelaksanaannya juga mestilah berbeza.

Sedikit parameter yang mungkin

Saya suka mengikut peraturan tiga. Ini bermakna fungsi mesti mempunyai tiga atau kurang parameter. Apabila fungsi memerlukan lebih daripada tiga parameter, ia harus ditulis semula dan parameter diletakkan dalam pemegang data, seperti kelasnya, kelas data, objek JavaScript dan sebagainya. Ini adalah cara mudah untuk mengurangkan bilangan parameter dan mengatur data dalam aplikasi. Mari kita ambil contoh fungsi yang mempunyai kelakuan yang sama tetapi tandatangan yang berbeza:
fun addCustomer(
  firstname: String,
  lastname: String,
  streetAddress: String,
  city: String,
  zipCode: String
)
Berikut ialah pilihan lain:
data class Address(
  val street: String,
  val city: String,
  val zipCode: String,
  val streetNumber: String
)

data class Customer(
  val firstname: String,
  val lastname: String,
  val address: Address
)

fun addCustomer(customer: Customer)

Fungsi melakukan apa yang diharapkan

Fungsi mesti melakukan apa yang diharapkan daripadanya. Tidak lebih, tidak kurang. Jika fungsi dinamakan findAddress(latitud, longitud) maka ia harus mencari alamat pada koordinat yang diberikan, atau, jika alamat tidak boleh ditukar kepada koordinat, kembalikan None , null , Empty atau apa sahaja jenis yang sesuai untuk bahasa yang diberikan . Fungsi ini tidak sepatutnya melakukan apa-apa lagi, seperti mencari alamat berdekatan atau membina rekod koordinat. Fungsi mungkin mempunyai kesan sampingan seperti pengelogan atau analitik, tetapi ini tidak dapat dilihat oleh input dan output.

Fungsi boleh diuji

Ciri mesti direka bentuk supaya ia boleh diuji. Dalam contoh kod sebelumnya, saya mentakrifkan addCustomer function , tetapi saya tidak mentakrifkan sebarang jenis pulangan, jadi kebolehujiannya boleh dipersoalkan. Sudah tentu ia boleh diuji menggunakan olok-olok atau pengintip bergantung pada bagaimana pelaksanaan dalaman, ini boleh dicapai dengan hanya menyediakan jenis pulangan:
fun addCustomer(customer: Customer): Customer
Dengan tandatangan fungsi ini, kita boleh mengembalikan entiti klien yang ditambahkan kepada komponen yang dipanggil. Kami juga boleh menyemak sama ada fungsi itu melakukan perkara yang sepatutnya dilakukan dengan objek klien ini (iaitu, memberikannya pengecam unik).
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION