- 1
- 2
- 3
- 4
- 5
#include "org_herac_tuxguitar_player_impl_midiport_oss_MidiSystem.h"
...
JNIEXPORT jlong JNICALL Java_org_herac_tuxguitar_player_impl_midiport_oss_MidiSystem_malloc(JNIEnv* env, jobject obj) {
...
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+99.8
#include "org_herac_tuxguitar_player_impl_midiport_oss_MidiSystem.h"
...
JNIEXPORT jlong JNICALL Java_org_herac_tuxguitar_player_impl_midiport_oss_MidiSystem_malloc(JNIEnv* env, jobject obj) {
...
}
Взято из TuxGuitar
чем хуже javaMidiSystemMalloc(); ?
чтобы ты всю жизнь такие хэдэры писал и функции
А минусуют потому, что не выполнено пожелание: "на который без улыбки не взглянешь". Тут не до улыбок с такими именами...
Не уверен, что есть требование соблюдать такую конвенцию, но из названия метода понятно для какого класса она предназначен. Это НЕ говнокод.
Хотя я так понимаю, раз изучаешь Java - втыкать это придеться? Альтернативы нет?
Java_org_herac_tuxguitar_player_impl_mid iport_oss_MidiSystem_malloc
Ну и имена... Из типов JNIEnv* и jobject можно определить, что это enveroment и object. Зачем в именах повторять тип? Лучше-бы закодировали в именах - для чего туда кладут эти данные или прочий контекст.
Ну и хедер. Такое вижу первый раз. Многое видел, но что-бы так... O_o
Во-вторых, признайте сами, что даже если код был бы говнокодом, но уже известным вам, то он небыл бы вам интересен. Конкретно данный случай кода я лично считаю вполне наглядным примером "до чего дошли современные технологии". Вы, поскольку, возможно, знакомы с технологией JNI такому не удивляетесь, а потому от скуки возмущаетесь; а я вижу причину удивляться даже не смотря на то, что "так требует JNI". Ведь я не прошу называть это говнокодом, однако для тех, что не работал с данной техниологией, тут есть на что посмотреть. А ваше возмущение идёт не из того, что данный код вполне нормален, а из того, что вы и до данного поста кода знали про данную вынужденную меру и вам уже тупо неинтересно на это смотреть.
На всякий случай переформулирую. Уже понятно раз 5 по текущим комментариям, что существуют технологие требующие подобного именования (и не стоит ещё и ещё раз повторять за своими товарищами). Но не смотря на это, IMHO, стоит признать, что этот JNI - некий апофиоз длинных имён. Да и вообще, встретить такие вещи в коде как минимум неприятно.
Если кто-то ещё попытается объяснить что это не является говнокодом, то прошу вас, не надо. Я понимаю что это вынужденный случай, просто пусть это увидят все те, кто никогда с таким не сталкивался, улыбнётся и пойдёт дальше.