![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, poszukuję optymalnego sposobu na zapis poniższej funkcji (metoda w klasie, której nie wklejam):
Gdyby w isset() można było dokonać przypisania, to całość sprowadzałaby się do:
Niestety się nie da. Ma ktoś może jakiś pomysł jak to zoptymalizować? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 229 Pomógł: 34 Dołączył: 7.12.2008 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 229 Pomógł: 34 Dołączył: 7.12.2008 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
No zgadza się, isset()-y celowo dałem. Dzięki za pomoc Panowie.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Od kiedy to optymalny równa się maksymalnie krótki i nieczytelny?
Nie kombinuj tam gdzie nie potrzeba. EDIT: Ogólnie to masz paskudną strukturę danych. Ten post edytował Crozin 2.08.2010, 17:55:36 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 229 Pomógł: 34 Dołączył: 7.12.2008 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 142 Pomógł: 49 Dołączył: 29.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 229 Pomógł: 34 Dołączył: 7.12.2008 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem dlaczego tak jest
![]() ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 142 Pomógł: 49 Dołączył: 29.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Trochę bez sensu, no ale ![]() Dlaczego bez sensu? Czy coś co jest mniej czytelne, musi być wydajniejsze? ![]() -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 706 Pomógł: 108 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
A to inna sprawa. Zapis typu ?: jest wolniejszy niz zwykly if - else, wiec Twoje rozwiązanie jest najlepsze ![]() Wątpię - a nawet jeśli, to co z tego? Tworzysz grę, która ma śmigać w 60 FPS? Panowie, nie popadajcie w paranoję. Zapis ? : jest tu jak najbardziej w porządku. |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 142 Pomógł: 49 Dołączył: 29.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego bez sensu? Czy coś co jest mniej czytelne, musi być wydajniejsze? :) Nie nie nie nie - czytelność jest kwestią gustu, bez sensu jest tylko to, że zapis:
który znaczy dokładnie to samo co:
może być wolniejszy od tego drugiego. Tak przy okazji - nie wyobrażam sobie zapisania skryptu typu:
W taki sposób:
nawet w tej, w sposób oczywisty mniej wydajnej wersji:
Dla mnie to pierwsze jest znacznie bardziej czytelne. Ale jak już napisałem - kwestia gustu. |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Zacznijmy od tego, że jak masz taką konstrukcję to jest coś nie tak z Twoimi umiejętnościami. Ale rozumiem, że to tylko na potrzeby przykładu.
Jeszcze tak raz podkreślę: nie szukaj wydajności w takich miejscach - to, że zyskasz 0.00000213 sekundy nic Ci nie da. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 229 Pomógł: 34 Dołączył: 7.12.2008 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
W Twojej wersji jak najbardziej zapis skrócony jest sensowniejszy. Kwesta kompromisu pomiędzy czasem wykonania a przejrzystością kodu. Poza tym rozchodzi się o czas rzędu 3E-6
![]() Jednak przy pierwotnym problemie w tym temacie zapis Crozina wydaje mi się najsensowniejszy. Szybszy i jednak bardziej przejrzysty niż zagnieżdżanie ?: Pozdro |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 142 Pomógł: 49 Dołączył: 29.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze tak raz podkreślę: nie szukaj wydajności w takich miejscach - to, że zyskasz 0.00000213 sekundy nic Ci nie da. Spoko spoko - nie ja podniosłem kwestię wydajności. Ale to trochę tak jak z ++$i zamiast $i++ - nikt nikomu nie każe przeglądać wszystkich swoich skryptów i zamieniać jedno na drugie. Ale nie zaszkodzi, jeśli to pierwsze wejdzie w krew (i szablony kodu :)). |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
No dobrze, ważna jest czytelność kodu, a czy poniższy zapis jest nieczytelny?
Jeżeli ktoś posiada konkretną wiedzę czy i jeśli tak to kiedy wskazane jest używanie skróconego zapisu za pomocą ternary operator-a będę niezmiernie wdzięczny za wytyczne. |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Nie nie nie nie - czytelność jest kwestią gustu, bez sensu jest tylko to, że zapis: Dla mnie to pierwsze jest znacznie bardziej czytelne. Ale jak już napisałem - kwestia gustu. Jeżeli robisz to w sposób, który przedstawiłeś na forum to nie skomentuję... Co do wydajności - wrzuć sobie w pętlę z 100 tysięcy raz, wyciągnij czasy, podaj czas średni i porównaj - może się mylimy... ![]() Ale to trochę tak jak z ++$i zamiast $i++ - nikt nikomu nie każe przeglądać wszystkich swoich skryptów i zamieniać jedno na drugie. No i tutaj byś się zdziwił, jest różnica czy używasz ++$i czy $i++ Miłego czytania -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 389 Pomógł: 69 Dołączył: 26.04.2010 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
No i tutaj byś się zdziwił, jest różnica czy używasz ++$i czy $i++ Miłego czytania wystarczy ze wklepie echo ![]()
Ten post edytował kapuch 3.08.2010, 00:01:40 -------------------- Nie chce "Pomógł", aktualna ilość (69) w pełni mnie satysfakcjonuje :)
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
wystarczy ze wklepie echo ![]()
No i moim zdaniem jest to BARDZO duża różnica i jeżeli ktoś nie widzi tej różnicy lub o tym nie wie, znając życie przyleci na forum i będzie pytał: Dlaczego mi skrypt źle działa? -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 11:43 |