Ich habe einen Kommentar / eine Bemerkung gesehen, in dem / der etwas - in Bezug auf LINQ / Lambda - stand: "Schreiben Sie Code, der für Menschen lesbar ist, anstatt für Ihren Computer lesbar".
Ich denke, dass diese Aussage eine Menge Verdienst hat, bedenken Sie jedoch den Entwickler (wie mich), der die gesamte Bandbreite der Entwicklungssprachen von Assembly über prozedural, über OO, durch verwaltet und durch die Nutzung von parallelen Lösungen für Aufgaben mit hohem Durchsatz durchlaufen hat .
Ich bin stolz darauf, meinen Code so lesbar und wiederverwendbar wie möglich zu machen und viele der GOF-Entwurfsmusterprinzipien anzuwenden, um Systeme und Dienstleistungen für die Produktionsqualität in einer Vielzahl unterschiedlicher Geschäftsbereiche bereitzustellen.
Als ich das erste Mal auf den Lambda-Ausdruck stieß, dachte ich: "Was zum Teufel ist das!?!" Es war meiner vertrauten (und daher bequemen) expliziten deklarativen Syntax sofort zuwider. Die jüngeren <5-Jährigen im Job haben es jedoch geschafft, als wäre es Manna vom Himmel!
Das liegt daran, dass jahrelanges Denken wie ein Computer (im syntaktischen Sinne) sehr einfach in direkte Codierungssyntax (unabhängig von der Sprache) übersetzt werden kann. Wenn Sie diese rechnerische Denkweise seit über 20 Jahren (in meinem Fall über 30) haben, müssen Sie sich darüber im Klaren sein, dass der anfängliche syntaktische Schock des Lambda-Ausdrucks leicht zu Angst und Misstrauen führen kann.
Vielleicht hatte der Mitarbeiter im OP einen ähnlichen Hintergrund wie ich (dh war ein paar Mal in der Nähe des Blocks) und es war zu diesem Zeitpunkt für ihn nicht intuitiv? Meine Frage ist: Was hast du dagegen getan? Haben Sie versucht, Ihren Kollegen dazu zu erziehen, die Vorteile der Inline-Syntax zu verstehen, oder haben Sie sie angeprangert / ausgegrenzt, weil sie nicht "mit dem Programm" zusammen sind? Ersteres hätte wahrscheinlich Ihren Kollegen dazu gebracht, sich Ihrer Meinung anzunähern, letzteres würde ihn wahrscheinlich dazu bringen, der LINQ / Lambda-Syntax noch mehr zu misstrauen und damit die negative Meinung zu verschärfen.
Für mich selbst musste ich meine eigene Denkweise umerziehen (wie Eric oben schlussfolgert, ist dies keine unbedeutende Veränderung des Denkvermögens, und ich musste in den 80er Jahren in Miranda programmieren, damit ich über einen Teil meiner Erfahrung mit funktionaler Programmierung verfügte). aber sobald ich durch diesen Schmerz gegangen war , die Vorteile liegen auf der Hand , aber - was noch wichtiger ist - wo seine Verwendung wurde über verwendet (dh zum Zwecke verwendet , es zu benutzen), über komplexe und sich wiederholende ( unter Berücksichtigung der DRY - Prinzip in diesem Beispiel).
Als jemand, der nicht nur noch viel Code schreibt, sondern auch technisch viel Code überprüfen muss, war es unbedingt erforderlich, dass ich diese Prinzipien verstehe, damit ich Artikel unparteiisch überprüfen und beraten kann, wo die Verwendung eines Lambda-Ausdrucks effizienter sein kann / lesbar, und um Entwickler zu veranlassen, die Lesbarkeit hochkomplexer Inline-Lambda-Ausdrücke zu berücksichtigen (wobei ein Methodenaufruf in diesen Fällen den Code lesbarer, wartbarer und erweiterbarer machen würde).
Also, wenn jemand sagt, dass er kein Lambda bekommt? oder LINQ-Syntax, anstatt sie als ludditisch zu bezeichnen, um ihnen zu helfen, die zugrunde liegenden Prinzipien zu verstehen. Sie haben vielleicht doch einen "old school" Hintergrund wie ich.