Cum ceri ajutor eficient?

Cum ceri ajutor eficient?

Scriu chestii atât de mișto pe forum încât simt nevoia să le transcriu și pe blog :D Azi: cum ceri ajutor într-un mod eficient. Am mai scris, dar îmi dau seama că nu am dezvoltat prea mult ideea. Prin urmare….

Atunci când întâmpini vreo problemă, o reproducere minimală te ajută foarte să înțelegi problema și să o explici altora. Nu vei putea niciodată rezolva o problemă dacă nu o înțelegi, cel mult vei nimeri ceva ce merge și aia e.

În plus, dacă este cineva care te-ar putea ajuta, va putea ori să parseze mental bucata de cod, ori să o bage rapid în consolă, să vadă unde este buba. Dacă pui zeci de linii de cod (sau dacă omiți detalii importante) lucrurile astea nu se vor întâmpla => nu vei primi ajutor.

Ce înseamnă reproducere minimală? Fix ce-i spune numele: minimum de cod necesar pentru a reproduce problema.

În cazul de față, raționamentul meu ar fi fost următorul:

  • Eroarea zice că este ceva la foreach ->
  • Deci nu este nevoie de nici un echo ->
  • Deci o reproducere minimală ar arăta așa:
foreach ($return_value as $row) {
  foreach ($row['category'] as $value) {}
}
  • DAR nu știu ce conține $return_value ->
  • Pun și minimum din variabila asta (i.e. cât să genereze problema: fără name sau description sau ce mai ai tu) ->
  • Deci expunerea problemei s-ar transforma în:

Am următorul cod:

$return_value = [
  [ "category" => "a, b, c" ],
  [ "category" => "a, c" ]
];
foreach ($return_value as $row) {
  foreach ($row['category'] as $value) {}
}

Care îmi dă eroarea Invalid argument supplied for foreach()

Parcă arată mai bine și nici nu are nevoie de noroc/ghici și, cel mai probabil, îți dai seama singur de problemă. Sau, dacă nu-ți dai seama, cineva cu puțin mai multă experiență va putea rula mental codul ăsta să-ți zică unde e problema. Sau, în caz extrem, va putea deschide o consolă și să testeze o bucată de cod.

5 Comentarii

× Adaugă un răspuns pentru Mălin

Poți adăuga bucăți de cod folosind [code]codul tău aici[/code], [js][/js], [php][/php] etc.

Link-urile în context sunt binevenite. Comentariile fără nume/email valid sunt șterse.
PS: Comentariul NU este editabil.

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Site-ul blog.iamntz.com utilizează cookie-uri. Continuarea navigării presupune acceptarea lor. Mai multe informații.

windows apple dropbox facebook twitter