Co oznacza formułka "dobra znajomość języka x"? Umiejętność których elementów języka wpływa na fakt, że możemy stwierdzić, że znamy ten język? Głównie chodzi mi o języki C#, Java.
Znajomość biblioteki standardowej, co najmniej jednego frameworka tegoż języka i dobrej znajomości sieci.
To znaczy ze nie zastanawiasz się "jak" coś zrobić z punktu widzenia języka a jedynie "co" zrobić i "jak" z punktu widzenia architektury.
Jeśli np. nie umiesz napisać z palca jakiejś generycznej klasy w Javie czy generycznej metody, albo nie umiesz skorzystać z jakiegoś innego mechanizmu języka, to znaczy że go dobrze nie znasz. Jeszcze gorzej kiedy nawet nie wiesz ze taki mechanizm istnieje...
Robić krócej**,** a mądrzej**. Dla przykładu.** Taki kod z mojego programu**,** rozwijanego w wolnym czasie [ZŁY KOD]:
if (partCache.containsKey(index)) {
HashMap<String, Integer> data = partCache.get(index);
data.put(name, data.containsKey(name) ? data.get(name) +1 : 1 );
} else {
HashMap<String, Integer> value = new HashMap<String, Integer>();
value.put(name, 1);
partCache.put(index, value);
}
Można z powodzenie zastąpić takim kodem**:**
if (!partCache.containsKey(index))
partCache.put(index, new HashMap<String, Integer>());
HashMap<String, Integer> data = partCache.get(index);
data.put(name, data.containsKey(name) ? data.get(name) +1 : 1 );
Robi**,** to same a kodu jakby mniej i bardziej czytelny jest**,** Prawda**.**
data.containsKey(name) ? data.get(name) +1 : 1
Ale caly czas nie wiem czemu +1 niestety.
@Jarema1980 no akurat ty pokazałeś ksiażkowy przykład kiedy ktoś ma slabą znajomość języka programowania. Bo ten kod można zapisać dużo prościej, a ty nawet nie zdajesz sobie z tego sprawy ;)
partCache.putIfAbsent(index, new HashMap<String, Integer>());
Map<String, Integer> data = partCache.get(index);
data.putIfAbsent(name, data.getOrDefault(name, 0) + 1);
i nagle nie mamy już w swoim kodzie zadnych ifów ani wyrażeń warunkowych!