Wpis z mikrobloga

Uwaga, tylko dla top 1% software engineer, mam aplikacje w #react

A ona ma 2 wyszukiwarki:
* prostą (jedno pole, szuka wszystko)
* oraz zaawansowaną, która, jest bardziej precyzyjna (co, ile, jak).

Ale to tylko kontekst.

Chodzi o to, że jeśli w aplikacji ktoś wpisze mojadomen.pl/app/search/dupa
To mu przekieruje na prostą wyszukiwarkę i wyszuka "dupa".

Jeśli ktoś wejdzie na mojadomen.pl/app/advanced/search/dupa
to mu się włączy widok z zaawansowaną wyszukiwarką i uzupełni pierwsze pole tekstem "dupa".

Problem: jeśli ktoś wejdzie w link mojadomen.pl/app/advanced/search albo mojadomen.pl/app/search to mu się wpiszę słowo search, do wyszukiwarek, a nie powinno się wpisać nic.

Mój zaawansowany algorytm jeszcze bardziej zaawansowane obejście sprawiają, że jestem niezadowolony z siebie jako frontend sfotware engineer. Czy ktoś umie coś doradzić?

Cały komponent tu:
https://pastebin.com/nPipMTZj

#programowanie #programista15k #javascript #webdev
  • 13
  • Odpowiedz
  • 0
@sokytsinolop: klient chce mieć "łatwo" i wpisywać po domena/search/dupa, więc bez parametru. No właśnie mam "parser" ale on jest niskiej jakości myślę, pytanie jak go zrobić lepiej, żeby się nie wstydzić oddać.
  • Odpowiedz
masz trzy problemy:
- źle parsujesz path, o co pytasz (sprawdź co jak jest /app/search/)
- podziel to wszystko na jakieś 3-4 komponenty
- użyj react-router itp, bo tak jak decydujesz który komponent renderować to nikt nie robi
  • Odpowiedz
@pyroxar: najwiekszy problem jaki tu widze to to że uzupełnienie nie jest w standardowym query paramsie

linki powinny wyglądać następująco:
  • Odpowiedz
@pyroxar: ewentualnie jestli app/advanced/search to osobny path oraz app/search to osobny path, no to

mojadomena.pl/app/advanced/search?q=dupa
mojadomena.pl/app/search?q=dupa
  • Odpowiedz
aha jak odpowiadalem to nie pokazywalo mi tych wiadomosci to niezly wykop

im by sie przydal lepszy parser ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@pyroxar: zrób ruter, do tego służy.
Twój komponent powinien być wywołany przez router z trybem (advanced/search) oraz z zapytaniem, którego szukasz. Także router może ci to opędzlować. Zamiast robić komponent, który robi wszystko, parsuje, renderuje, to zrób taki, który robi jedną rzecz, ale dobrze. Tzw. Single Responsibility Principle.

Masz od chatgpt, może będzie na czym pracować:

import
  • Odpowiedz
  • 0
jest jakis konkretny powód dlaczego to miałoby być tak o po prostu w url patha wrzucone


@Akke: bo tak mam w tasku, czyli bo tak chce klient. To ma człowiek sobie łatwo wpisać, to nie jest nic dla programu.
  • Odpowiedz