Dobra znajomość języka programowania - co się pod tym kryje?

Odpowiedz Nowy wątek
2017-09-13 22:36
Szalach
0

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.

Pozostało 580 znaków

2017-09-13 22:40
Złoty Wiek
0

Znajomość biblioteki standardowej, co najmniej jednego frameworka tegoż języka i dobrej znajomości sieci.

Pozostało 580 znaków

2017-09-13 22:47
5

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...


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2017-09-14 11:09
0

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.

edytowany 2x, ostatnio: Jarema1980, 2017-09-14 11:40
To nie oznacza dobrej znajomości języka. To umiejętność pisania lepszego kodu ;) - Juhas 2017-09-15 10:45

Pozostało 580 znaków

2017-09-14 11:18
Krzywy Programista
0
data.containsKey(name) ? data.get(name) +1 : 1 

Ale caly czas nie wiem czemu +1 niestety.

Gdy element istnieje zwiększasz licznik o jeden, inaczej inicjujesz wstawiając wartość domyślną, czyli tutaj to jest 1. Można było by to rozpisać z użyciem if...else ale wyrażenie lambda dużo lepiej tutaj pasuje. Tak myślę. - Jarema1980 2017-09-14 11:30

Pozostało 580 znaków

2017-09-14 11:24
1

@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!


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 2x, ostatnio: Shalom, 2017-09-14 11:25
Zawsze miło poznać kogoś kto czyta książki, i jest o poziom wiedzy wyżej niż tym sam. - Jarema1980 2017-09-14 11:32

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0