
Ke depan, saya ingin menarik perhatian pada situasi kacau dengan pemenang tahap pertama kompetisi. Pemenangnya mengambil 50 ribu presiden Amerika. TETAPI, setidaknya ada satu pengembang lain yang menulis aplikasi yang identik dan tidak dihargai dengan cara apa pun. Dia bahkan tidak mengambil tempat terakhir. Pengembang ini secara publik, melalui situs webnya - https://tgcontest.braychuk.com/ , menghubungi tim Telegram dengan pertanyaan. Jika ada yang tahu tentang ini, silakan tulis di komentar.
Jadi mari kita mulai.
Seperti yang Anda ketahui, baru-baru ini, Telegram mengirim pesan langsung kepada semua penggunanya bahwa mereka akan mengadakan kompetisi pemrograman.
Keren sekali, pikirku.
Nah, baca ketentuan kontes Android:
Dan apa yang kita lihat di sana - "Kriteria utama adalah kecepatan dan kinerja." Hebat! Bukankah ini yang disukai oleh banyak programmer? Saya hanya mengagumi mereka. Jadi, keputusan untuk berpartisipasi dalam kompetisi dibuat, masih menentukan pendekatan untuk implementasi. Satu hal yang jelas, Anda perlu mendekati solusi masalah kinerja secara menyeluruh dan mendasar. Jadi, untuk istirahat kalau tidak semua, maka paling tidak mayoritas. Karena satu lagi kriteria kompetisi, yang, tentu saja, kurang di peringkat daripada kinerja, adalah desain UI, kami kemungkinan besar perlu berputar di sekitar Java UI dan menggunakan kontrol standar yang muncul dalam sketsa desain. Namun, itu tidak menguntungkan untuk menggunakan Java UI dan membuat di area overlay OpenGL, di sini setidaknya mereka akan menyebabkan drawdown dalam pengalihan konteks. Tapi kami ingin menghancurkan semua orang dengan kinerja tinggi. Jadi Java UI menghilang, kami mengandalkan kinerja, dan kami palu pada desain. Biarkan desainer yang melakukannya, kami adalah programmer yang bangga :) . Solusinya jelas - gunakan OpenGL layar penuh, vertex shader, dan tulis semua kode dalam NDK / C ++. Yaitu kita hanya perlu menulis mesin grafis / render, yang biasanya ditulis untuk game mobile, untuk hanya menggambar grafik Telegram.
Ya, saya tahu, saya gila :)
Ada satu minus besar untuk pendekatan ini - kita perlu menulis semua elemen UI dan meresepkan interaktivitas untuk mereka, yang akan memakan banyak waktu. Oleh karena itu, kami memikirkan penerapan UI yang paling sederhana: kami menulis widget interaktif UI sederhana yang dapat menentukan klik pada diri mereka sendiri dan melakukannya dalam dinamika (saat bergerak di sekitar layar, secara realtime).
Ternyata kira-kira sebagai berikut:
Sebenarnya, semua hal di atas dilaksanakan dalam dua minggu, di waktu luang dari pekerjaan kantor, dengan malam tanpa tidur, tentu saja.
Apa yang dilakukan Telegram? Benar-benar memotong aplikasi saya dari kompetisi dengan kata-kata, "Ketidakpatuhan dengan desain, menampilkan grafik pada satu layar."
STA?
Saya kira saya awalnya keliru oleh kompetisi :) Jadi, ini bukan kompetisi pengembang yang dapat menunjukkan tingkat kompetensi mereka melalui penerapan aplikasi / algoritma kinerja tinggi, melainkan kompetisi desainer? Atau apakah ini merupakan kompetisi maksimum untuk pengembang UI yang dapat menggunakan alat desain UI standar, serta dapat menyentuh kanvas pada UI yang sama?
Oke, buah ara bersamanya, dengan desainnya. Saya tidak membantah, ada perbedaan :) . Dan bagaimana dengan kata-katanya - "menampilkan grafik pada satu layar"? Tapi ini sudah menarik.
Jika Anda melihat kondisi kompetisi, maka kami tidak akan melihat persyaratan seperti itu dari kata "sepenuhnya." Jadi tidak mungkin. Jadi saya salah di suatu tempat. Telegram secara ketat mengikuti sketsa desainnya dan dengan ketat mengikuti mereka. Jadi persyaratan ini "secara visual" harus ditampilkan dalam sketsa yang sama.
Kami melihat sketsa:
Ahem ... Tidak terlihat grafik yang berada di satu lembar “umum” dan digulir. Sebagai gantinya, kami melihat grafik yang ditarik secara terpisah pada satu layar. Ada dua opsi yang mungkin:
- Semua jadwal benar-benar berada pada lembar dan gulir yang sama, tetapi mereka tidak secara visual menunjukkannya pada sketsa dan hanya tidak secara eksplisit mendaftarkan semua yang ada di kompetisi
- Grafik entah bagaimana beralih. Bagaimana tidak ditunjukkan, yang berarti "default" dan, oleh karena itu, diserahkan kepada pengembang. Dia dapat menyadari hal ini atas kebijakannya sendiri.
Secara umum, tim Telegram, belajar menulis TK, itu akan berguna untuk Anda ;) . Serius.
Peringkat kinerja
Dari uraian di atas - aplikasi saya tidak memenuhi penilaian kinerja. Tapi tetap saja. Bagaimana kinerja tingkat kereta?
Kelihatannya seperti ini: "Kami menguji aplikasi Anda pada perangkat lama dan berfungsi kurang lancar dibandingkan yang lain."
STA?
Telegram, di mana angkanya? Tabel ringkasan pengujian, perbandingan dengan aplikasi lain berdasarkan data objektif yang dinyatakan dalam bentuk angka?
Seharusnya terlihat seperti ini:
- Kami mengambil aplikasi Anda, meluncurkannya pada 1000 titik awal dari grafik kami, kemudian pada 10.000, kemudian pada 100.000 dan pada 1.000.000, kami mendapatkan nomor FPS ini
- Aplikasi Anda menerima plus begitu banyak poin untuk kinerja yang dicapai.
- Untuk perbedaan antara desain dan omong kosong yang penting bagi kami, aplikasi Anda menerima minus begitu banyak poin
- Hasilnya, secara total, aplikasi Anda mencetak N poin
- Dan sebagai hasilnya, aplikasi Anda adalah Kth dalam tabel hasil keseluruhan
Pendekatan ini dalam mengevaluasi sesuatu adalah hal yang biasa bagi setiap profesional. Mungkin Telegram juga mengevaluasi kualitas dari algoritma komunikasi audionya? Di telinga? Tidak heran kalau begitu mengapa masih banyak yang harus diinginkan. Rekan-rekan Amerika saya, dalam kasus seperti itu, suka mengatakan, "Sakit sekali." Namun demikian, cukup adil untuk mengatakan, saya memiliki pendapat yang jauh lebih baik tentang tim Telegram secara keseluruhan.
Penilaian Stabilitas Aplikasi
Dan akhirnya.
Bagaimana gerobak mengevaluasi stabilitas aplikasi? Memang, menurut kriteria ini, Keranjang memotong satu ton aplikasi dari kompetisi. Untuk sesaat, saya akan menarik perhatian Anda pada kenyataan bahwa kriteria stabilitas dalam kondisi kompetisi "Tahap 2" tidak muncul dari kata "sepenuhnya".
Namun demikian. Mereka memotong aplikasi dengan susunan kata, “Kami meluncurkan aplikasi Anda di beberapa perangkat. Pada perangkat K dan M jatuh "
Saya malu bertanya, tetapi di mana daftar perangkat tempat Anda akan menguji aplikasi kompetitif? Daftar ini seharusnya bersifat publik, sehingga semua pesaing mengetahui tentang hal itu sebelumnya. Kalau tidak, siapa yang akan menjamin bahwa jika satu aplikasi dari 10 crash pada satu perangkat dari 5, maka itu bekerja kurang stabil daripada semua aplikasi yang tersisa yang tidak "jatuh"? Tetapi bagaimana jika saya mengambil 9 aplikasi ini dan menjalankannya di 5 perangkat lain di mana mereka akan merusak semuanya, kalau tidak salah? Bagaimana Anda menyukai kasus ini? Lalu bagaimana Telegram akan mengevaluasi stabilitas semua 10 aplikasi?
Jadi, ada kesalahan klasik yang dibuat oleh korban.
Tepuk tangan Telegram, ....
Kesimpulan dari ahli patologi
Dengan demikian, kami menyimpulkan bahwa kompetisi ini adalah piramida keuangan dan makanan, Naedalovo -
Dan sayangnya, ada banyak peserta dalam kompetisi yang juga tidak mengerti bagaimana dan mengapa mereka mengambil tempat ini atau itu, atau tidak mengambilnya sama sekali. Tentu saja, saya merasa kasihan dengan waktu dan usaha yang dihabiskan. Tetapi semua penyesalan akan diratakan jika kontes terbuka dan transparan.
Terima kasih atas perhatian anda!
PS
Unduh apk-chechka dari sini