title: Konfiguracja użytkownika skryptu powłoki. Najlepsze praktyki?

text: Piszę skrypt powłoki z kilkoma zmiennymi, które powinien skonfigurować użytkownik. Będzie instalator do pobrania i skonfigurowania skryptu, być może poprzez zadawanie serii pytań. Omawiany skrypt jest skierowany do innych deweloperów. Można to zaimplementować na kilka sposobów: 1. **Użyj symboli zastępczych** w samym skrypcie i użyj `sed` do ich zastąpienia podczas instalacji (coś takiego: http://stackoverflow.com/questions/415677/how -to-replace-placeholders-in-a-text-file) * Plusy: Wszystkie definicje zmiennych są zawarte w skrypcie. Ręczne pobranie skryptu i skonfigurowanie zmiennych dla użytkowników, którzy wolą edytor od instalatora, jest łatwe. * Wady: Trudno jest ponownie skonfigurować zmienne za pomocą instalatora, gdy są już na miejscu. Chyba że stworzę bardziej złożone wyrażenie regularne, które będzie podatne na błędy. 2. **Użyj pliku konfiguracyjnego** , w zasadzie innego skryptu powłoki z przypisaniami, i użyj `source`, aby go dołączyć. (I prawdopodobnie umieść go w `~/.scriptname`? Główny skrypt jest kopiowany do `/usr/local/bin`) * Zalety: Łatwo jest przekonfigurować skrypt. Mógłby nawet dodać parametr do tego z głównego skryptu (Prawdopodobnie działałby również w pierwszym rozwiązaniu, ale edytowanie samego skryptu nie brzmi jak dobry pomysł) * Wady: Skrypt jest teraz zależny od dwóch plików a użytkownik musi uruchomić instalator w celu utworzenia pliku konfiguracyjnego. Można to rozwiązać, automatycznie generując plik konfiguracyjny, jeśli żaden nie istnieje. Ale zlokalizowanie zewnętrznego pliku konfiguracyjnego będzie nadal bardziej kłopotliwe dla użytkowników, którzy chcą tylko pobrać skrypt, edytować go i skończyć z nim. Kilka opcji dotyczących sposobu zarządzania konfiguracją przez użytkownika po instalacji: 1. **Git like** $ myscript config server.host example.org $ myscript config server.proxypath /home/johndoe/proxy $ myscript config server.httppath /home/johndoe/web 2. **Interactive** $ myscript config Podaj nazwę hosta serwera: example.org Podaj ścieżkę do proxy na serwerze: /home/johndoe/proxy Podaj ścieżkę do http katalog na serwerze: /home/johndoe/web 3. **getopts z długimi opcjami** $ myscript --host example.org --proxypath /home/johndoe/proxy --httppath /home/johndoe/web 4. * *Prosty** $ myscript config example.org /home/jankowalski/proxy /home/jankowalski/web Czy istnieją inne sposoby na zrobienie tego, które warto rozważyć? Jakieś najlepsze praktyki, coś eleganckiego?


title: Jakie specyficzne cechy NHibernate powodują, że jest on zalecany dla starszych systemów baz danych?

text: Tak więc oceniałem Entity Framework i NHibernate (nie szukam tutaj bitwy EF vs. NH!). Jedną rzeczą, która pojawia się bardzo często, jest to, że NHibernate jest zalecany dla projektów baz danych "starszych"/brownfield, a lżejsze ORM-y (Dapper, itp.) są czasami zalecane dla nowszych baz danych. Będę stosował mój ORM do bazy danych terenów poprzemysłowych. Jakie specyficzne cechy NHibernate sprawiają, że jest on tak powszechnie zalecany dla „starszych” baz danych. (Nigdy nie słyszałem, aby ktoś powiedział „oto _dlaczego_ NHibernate jest lepszy dla starszych DB – naprawdę chcę to wiedzieć, abym mógł odpowiednio ocenić NHibernate) A tak przy okazji, jaka jest tutaj definicja dziedzictwa? Czy ludzie mają na myśli * „bazy danych, które nie są dobrze znormalizowane”? (lub) * „bazy danych, do których dostęp uzyskuje się za pomocą środków innych niż ORM, takich jak zapytania SQL lub przechowywane procedury? (lub) * w ogóle nie mówimy o bazie danych, ale odwołujemy się do klasycznych systemów dwuwarstwowych (lub dwuwarstwowych aplikacji internetowych, w których występuje gęsty stan sesji i brak warstwy aplikacji)? (lub) * Jakakolwiek baza danych, która nie jest bazą danych noSQL? Jeśli to jest przydatne, dyskusja. Będę używał tego ORM do tworzenia rozproszonego, wielowarstwowego oprogramowania. Myślę więc, że wiele funkcji stanowych w ORM-ach, takich jak śledzenie zmian itp., nie będzie miało dla mnie większego znaczenia.


title: Użyć metody sort() tablicy ruby lub dodać elementy we właściwym miejscu za pomocą wyszukiwania binarnego?

text: Jeśli ładuję cały ładunek elementów (nieuporządkowane słowa z pliku lub czegoś), czy bardziej wydajne byłoby załadowanie ich wszystkich do tablicy Ruby, a następnie użycie wbudowanej metody `sort!` lub wykonanie binarne wyszukaj miejsce każdego elementu na liście podczas jego ładowania i dodaj go w tej pozycji. Podstawowy kod: array = [] lines.each do |line| array.push koniec linii array.sort! vs tablica = [] lines.each do |line| array.insert(find_index(wiersz), wiersz) end `find_index()` wyszuka poprawny indeks elementu w tablicy przy użyciu wyszukiwania binarnego.


title: Czy istnieje sposób na ograniczenie zakresu aplikacji knockout.js?

text: Mam starszy projekt, który zostałem zatwierdzony do pracy w module `knockout.js`. To świetnie, jednak aplikacja jest niezwykle złożona i muszę użyć niektórych gotowych walidacji formularzy naszej aplikacji. Moje walidatory formularzy działają dobrze, dopóki szablon dynamiczny nie zostanie wyłączony. Nie mogę przez całe życie zrozumieć błędu. Nic w konsoli i moje ogromne wysiłki związane z debugowaniem nie poszły na marne. Myślę, że moje rozwiązanie może być czymś w rodzaju ograniczenia zakresu aplikacji knockout, podobnie jak można zadeklarować `ng-app` w `angular.js`. Nie mogę znaleźć działającego przykładu, jak to zrobić, ani żadnej dokumentacji dotyczącej `knockout.js`


title: Dlaczego Apple zezwala tylko na ramy statyczne w systemie iOS?

text: Oczywiście Apple ma możliwość tworzenia dynamicznie ładowanych bibliotek (znanych jako frameworki) dla iOS, ponieważ dostarcza kilka z XCode (takich jak UIKit). Twórcy aplikacji mają tylko możliwość tworzenia statycznych bibliotek lub w najlepszym razie nakłonienia Xcode do myślenia, że ładuje framework, podczas gdy faktycznie ładuje bibliotekę statyczną. ale żadna z zalet dynamicznego ładowania. Jakie jest rozumowanie Apple, aby trzymać dynamiczne frameworki przed twórcami aplikacji? Wygląda na to, że znacznie ułatwiłoby to korzystanie z zewnętrznych bibliotek, ponieważ programiści nie musieliby polegać na skomplikowanych flagach linkerów lub łańcuchach zależności bibliotek open source. Edycja: Widzę częstym powodem jest bezpieczeństwo. Dlaczego więc Apple zezwala na to na OSX, a nie na iOS? Czy tam też nie jest wymagane bezpieczeństwo?


title: wpływ wycieku informacji o produkcie ze względu na macierzowe modele zasobów dla projektów rozwojowych

text: Czytałem gdzieś, że Amazon ma dedykowany zespół dla każdego ze swoich głównych produktów. Takie podejście ułatwia wzrost wiedzy domenowej dla każdego zespołu produktowego, a dzięki tej zachowanej wiedzy pozwala Amazonowi na szybkie dodawanie nowych funkcjonalności do produktów. Mam doświadczenie w pracy z wieloma firmami, które stosują bardziej model zasobów oparty na macierzy. W tym modelu firma posiada portfolio produktów, ale architekci, programiści i kierownicy projektów są bardzo często przenoszeni od produktu do produktu. Na przykład, jeśli do produktu ma zostać dodana nowa funkcjonalność, zostanie do tego stworzony zupełnie nowy zespół projektowy. Zespół projektowy prawdopodobnie nie miał wcześniej kontaktu z produktem. W wyniku tego zasobu macierzy, architektura techniczna produktu staje się słaba (każdy architekt będzie używał innego podejścia/stylu), a dodanie nowej funkcjonalności trwa znacznie dłużej ze względu na wiedzę domenową, którą nowy zespół projektowy musi zdobyć przed rozpoczęciem projektu . Wyciek informacji jest czasem wykorzystywany do opisywania skutków utraconej wiedzy, które wydaje się być potęgowane przez podejście do zasobów macierzy. **Pytania** : Czy istnieją jakieś badania lub dokumentacja, które potwierdzają moje doświadczenie i określają wpływ (koszt/czas) informacji utraconych z powodu modeli zasobów macierzy? * * * EDIT: Ponadto większość firm miała tendencję do zmiany zasobów w połowie projektu. Kosztowało to dużo czasu straconego z powodu: * wymaganych przeniesień między starymi i nowymi pracownikami (jeśli w ogóle się zdarzyły) * nowych pracowników na bieżąco z projektem * niskiego morale z powodu ciągłych zmian zasobów w projektach Opis linku Filozofia Amazona: ty ją budujesz; jesteś jego właścicielem. * * *


title: Kompilacje, ciągła integracja i wdrażanie projektów Pythona?

text: Czy możesz mi powiedzieć, jakie narzędzia są używane w pythonie do budowania projektów, a także które serwery ciągłej integracji są używane i jak wdrażać projekty na serwer? Mam na myśli projekty internetowe, ale nadal chętnie poznam więcej tych informacji nie tylko w sieci.


title: Czy jest miejsce, w którym mogę opublikować kod używany do zhakowania mojej witryny?

text: Niedawno zostawiłem otwarte drzwi na mojej stronie. Ktoś próbował wysłać kod PHP do modułu edycji strony CMS, ale nie został on wykonany. Mam ten kod i zastanawiałem się, czy jest gdzieś, w którym powinienem opublikować ten kod dla zainteresowania ludzi itp. To jest kod PHP.


title: Jak przełączyć się z Javy na .Net?

text: Czy ktoś tam to zrobił? Czy musiałeś poświęcić kilka lat na naukę .NET, zanim mogłeś znaleźć pracę, czy też pracodawcy po prostu chcieli rzucić Cię w ogień, opierając się na Twoim doświadczeniu w Javie? Zastanawiam się, czy byłoby dobrze, gdybym zaczął uczyć się .NET teraz, na wypadek, gdyby kilka lat później chciałem dokonać zmiany, a może nie muszę się martwić.


title: Kiedy NIE trzeba używać kolejek w aplikacji?

text: Projektowałem aplikację przy użyciu Laravel Framework i po raz pierwszy zetknąłem się z ideą kolejek. Istnieje wiele samouczków i artykułów na temat korzystania z kolejek i przykładów tego, do czego należy użyć, ale nigdy nie widziałem, aby ktoś pisał lub podkreślał, kiedy nie trzeba ich używać. Widziałem przykłady, a nawet pytania na forum dotyczące używania powiedzmy beanstalked lub iron.mq do rozładowywania zadań, które następnie odbywają się w sposób zarządzany, rozumiem tę koncepcję; ale czy istnieje potrzeba korzystania z kolejek, jeśli powiedzmy, że moja aplikacja korzysta z usług pocztowych, takich jak Postmark lub Mandrill? Czy w takim przypadku istnieje korzyść? Mam na myśli to, że przetestowałem obydwa i oczywiście obaj kolejkują zadania w swoich usługach, aby umożliwić ich działanie; czy potrzebuję kolejki na pocztę e-mail, gdy przenoszę czynność wysyłania poczty do usługi odłączonej od mojej aplikacji. (moja aplikacja nie została wypuszczona na wolność, obecnie nie mam informacji o typie testu porównawczego) Czym różni się dawanie zadań ironmq (która nadal wywołuje api i wysyła dane) od nawiązywania połączenia z Mandrill poprzez wysyłanie danych? Bardziej do rzeczy; czy trzeba mieć kolejkę, taką jak używanie iron.mq do wysyłania żądań poczty do mandrill, co zdarza się również kolejkować rzeczy?


title: Podstawowa teoria OOP: niezrozumienie otaczającej bazy danych i klas użytkowników

text: Nowicjusz w OOP i próbujący zrozumieć podstawowe podstawy. Obecnie używa PHP5 do budowy podstawowej aplikacji internetowej. Używając PDO wbudowanego w PHP jako mojej klasy bazy danych i oddzielnie utworzonej klasy użytkownika, która obsługuje między innymi logowanie i wylogowanie użytkownika, najlepiej jest, aby klasa db łączyła się z bazą danych w sytuacji logowania, czy też klasa użytkownika trzeba bezpośrednio połączyć się z db? Jeśli to drugie, myślę, że prawdopodobnie nie rozumiem, w jaki sposób PDO byłby samodzielny. Jeśli ta pierwsza, przypuszczalnie jakiś rodzaj „klasy pomocniczej” musi zostać utworzony, który ułatwiłby połączenie db między PDO a moją klasą użytkownika?


Jak dołączyć prawa autorskie/licencję do biblioteki, jeśli korzystam z 1 funkcji? Powiedzmy, czy mam klasę, którą mam pobierając 1 funkcję z innej biblioteki: class MyClass { ... public function someOtherLibrariesFunction() {} } A na górze pliku, z którego wziąłem funkcję, jest napisane: /* * This plik jest częścią pakietu Other Library. * * (c) James Smith <j.smith@gmail.com> * * Aby uzyskać pełne informacje o prawach autorskich i licencji, przejrzyj plik LICENSE *, który był rozprowadzany z tym kodem źródłowym. */ A plik LICENCJI: Copyright (c) 2004-2013 James Smith Niniejszym udziela się nieodpłatnie każdej osobie, która otrzymuje kopię tego oprogramowania i powiązanych plików dokumentacji („Oprogramowanie”), na zajmowanie się Oprogramowaniem bez ograniczeń, w tym między innymi prawa do używania, kopiowania, modyfikowania, łączenia, publikowania, rozpowszechniania, udzielania sublicencji i/lub sprzedaży kopii Oprogramowania oraz zezwalania na to osobom, którym Oprogramowanie jest dostarczane, z zastrzeżeniem następujących postanowień: Warunki: Powyższa informacja o prawach autorskich i niniejsza informacja o pozwoleniu będą dołączone do wszystkich kopii lub istotnych części Oprogramowania. ...standardowy jak gwarancja... Więc rozumiem, że musiałbym mieć kopię pliku LICENSE dołączoną do mojego kodu, a także jakoś wskazać dokładną funkcję, której dotyczy?


title: Pytanie do wywiadu: Procent czasu spędzonego na kodowaniu

text: Zostałem poproszony o oszacowanie, ile czasu spędzam na kodowaniu na moim obecnym stanowisku podczas rozmowy kwalifikacyjnej (powiedziałem, że około 70%). Wyklucza to czas na takie rzeczy jak dokumentacja i spotkania. Co ta statystyka mówi ankieterowi? Zgaduję, że szukają równowagi między kodowaniem za mało (co jest poza praktyką) a kodowaniem za dużo (nie widząc szerszego obrazu rozwoju produktu). * * * EDIT: Po zapoznaniu się z twoimi odpowiedziami jestem jeszcze bardziej ciekawa, jakie było faktyczne uzasadnienie tego pytania... Powinienem był zapytać ankietera! Twoje odpowiedzi są naprawdę zabawne w kontekście tej firmy.


title: Usługa REST i CQRS

text: Zmagam się z architekturą nad nowym projektem. Używam następujących wzorów/technologii. * CQRS - wszystko, co wchodzi, przechodzi przez polecenie * REST - za pomocą WebAPI * MVC - asp.net mvc * Angular - budowanie spa * nhibernate Wierzę, że zapewnia to świetną separację i powinno pomóc w utrzymaniu bardzo złożonej domeny przed przekształceniem się w giganta zestaw usług, które mieszają zapytania z inną logiką biznesową. * Usługi REST przestały działać. Odkładają metody, które są "SearchByDate", "SearchByItem" itp. * Metody usługi, które wykonują polecenia są wywoływane z klasą modelu "web", nowe polecenie jest wbudowane w usługę i wykonywane, czuję, że istnieje dużo dodatkowego kodu. Spodziewałem się, że to będzie zupełnie inne, ale nie było mnie w pobliżu, żeby wszystko na bieżąco. Na koniec moje pytania są takie... Chciałbym zobaczyć "PUT Person (CreatePersonCommand)", ale potem zdałem sobie sprawę, że to też nie jest spokojne, prawda? put powinien być osobą, a nie poleceniem. Czy mogę sprawić, by usługi CQRS i REST działały razem, czy też robię to źle? Jak obsłużyć metody obsługi, które nie pasują do modelu REST. Nie wykonuję CRUD na obiekcie, ale raczej wykonuję jakąś logikę biznesową. TJ. Nie chcę, aby interfejs użytkownika był odpowiedzialny za sposób „wyładowania” przesyłki. Chcę, aby warstwa usług się o to martwiła.


title: „Mac” kontra „OS X” kontra „Mac OS X”

text: Piszę oprogramowanie serwerowe, które daje administratorom opcje, które mają zastosowanie tylko do klientów Mac OS X. Wymieniając te opcje, muszę zdecydować, w jaki sposób będę się odnosić do takich klientów. Widzę trzy możliwości: * Mac OS X * Mac * OS X W kontekście wydaje mi się, że „Mac OS X” może być trochę niezdarny: „Domyślny protokół dla klientów Mac OS X”; „Zmień protokół Mac OS X”. W rozmowie z moim szefem sugeruje "OS X", bo tak nazywa się sam system operacyjny, podczas gdy ja uważam, że "Mac" jest bardziej rozpoznawalny. Chociaż „OS X” jest technicznie poprawny i zalecany przez Apple, wydaje mi się, że rozpoznaje on znacznie mniej nazw niż „Mac”; w szczególności administratorzy pracujący w środowisku Windows mogą nawet nie rozpoznać „OS X” i zastanawiać się, jakie są opcje, podczas gdy myślę, że wszyscy wiedzą, do czego odnosi się „Mac”. Patrząc na to, co wybiera kilka popularnych programów, widzę, że Microsoft ma „Office for Mac”. Adobe nazywa go „Macintosh” (co brzmi bardzo przestarzało, wierzę, że Apple przestał używać tego „Macintosha” lata temu). Firefox używa "Mac OS X". Google ma „Pobieranie oprogramowania Google dla komputerów Mac”. Nie widzę wielu popularnych programów, które odnoszą się do niego wyłącznie jako OS X; wydaje się, że najczęściej używany jest „Mac OS X” lub „Mac”. Apple określa go jako OS X, ale myślę, że fakt, że pochodzi od Apple, zapewnia ujednoznacznienie, którego potrzebujesz, więc nie jest to mylące z ich strony, podczas gdy może to być w innym kontekście. Czy jest na to dobre rozwiązanie? Czy powinienem wszędzie używać nieco niezdarnego „Mac OS X” (a przynajmniej za pierwszym razem, gdy odnoszę się do niego na dowolnym ekranie)? Oczywiście mój szef ma ostatnie słowo, ale chciałbym móc przedstawić spójną argumentację.


title: Terminologia dotycząca tworzenia stron internetowych i ogólnego programowania/oprogramowania?

text: EDYCJA: Powinienem wyjaśnić. Poszczególne terminy, które wymieniłem poniżej, w pełni rozumiem. Rozumiem również, że w3schools nie ma najlepszych informacji. To tylko przykłady. Nie oczekuję, że wszyscy zrozumieją, czym jest przykład, ale mam nadzieję, że większość to rozumie. Czy ktoś ma jakieś zasoby zawierające terminy związane z programowaniem i tworzeniem stron internetowych lub chciałby się w nich zaprezentować? Rzeczy takie jak: Runtime Build time Framework Library Normalize Jestem przede wszystkim programistą PHP, więc wszystko o tym. Naprawdę szukam ogólnych i szczegółowych terminów związanych z tworzeniem stron internetowych, PHP, SQL, CSS, HTML. Doceń każdy wkład. Para, którą znalazłem: http://www.w3schools.com/site/site_glossary.asp http://docs.roxen.com/pike/7.0/tutorial/fundamentals/concepts.xml


Czy klasa powinna wiedzieć o swoich podklasach? Czy klasa powinna robić coś, co jest specyficzne dla danej podklasy, na przykład? Instynkt podpowiada mi, że to zły projekt, wydaje się, że to jakiś antywzór.


title: Jak mam testować logikę bazy danych?

text: Nadal mam problem z pokonaniem małego problemu, jeśli chodzi o TDD. Potrzebuję metody, która uzyska określony zestaw rekordów przefiltrowanych danych z warstwy danych (linq2SQL). Należy pamiętać, że używam klas generowanych przez linq, które są generowane z DBML. Teraz problem polega na tym, że chcę napisać test na to. Zrób i: a) najpierw wstaw rekordy do testu, a następnie wykonaj metodę i przetestuj wyniki b) użyj danych, które mogą znajdować się w bazie danych. Nie interesować się tą logiką, ponieważ może to spowodować, że coś się zepsuje. c) co kiedykolwiek sugerujesz?


title: Jaka jest różnica między drzewem Splay a optymalnym drzewem wyszukiwania binarnego?

text: Oba te drzewa starają się utrzymać najczęściej używany element na górze. Czy jest jakaś różnica między tymi dwoma drzewami?


title: Jak przeprowadza się wywiady z programistami Scala

text: Jak przeprowadza się wywiady z programistami Scali? Jakich aspektów szuka osoba przeprowadzająca wywiad podczas rozmowy z deweloperem Scala?


title: Jak zaprezentować swoje doświadczenie zawodowe w programowaniu?

text: Jestem studentem języków tworzenia stron internetowych, takich jak PHP, Ruby i Python. Obecnie pracuję nad kilkoma projektami szkolnymi, ale próbuję pracować nad kilkoma projektami weekendowymi, które mogę wykorzystać do zaprezentowania potencjalnym pracodawcom, jaki jest najlepszy sposób na skonfigurowanie tego? W szczególności, czy masz jakieś wskazówki dla nowego programisty, ponieważ nie chcę opinii na temat tego, jak to lub tamto powinno lub nie powinno być skonfigurowane. Jeśli to możliwe, proszę podać prawdziwe przykłady. **Edytuj:** co z Git? Czy to dobre miejsce na pokazanie moich projektów?


title: Jak radzisz sobie z przeciążeniem poczty e-mail?

text: Zapewne wielu z Was otrzymuje setki/tysiące e-maili co tydzień. Dzieje się tak zwłaszcza, gdy jesteś częścią szerokich list dystrybucyjnych. Jak znaleźć odpowiednie? Czy używasz jakichś wtyczek _smart_ (dla Outlooka)? Do tej pory próbowałem: 1. Posortować je w folderach, ale się nie udało, bo potem dostałem się do przeciążenia folderów 2. Tworzenie reguł. Zawodzi zwłaszcza podczas dopasowywania tekstu, ponieważ nie bierze pod uwagę kontekstu.


title: Chcę zaprzyjaźnić się z programistami, ale nie wiem, gdzie naprawdę szukać

text: Wiem, że to dobre miejsce, ale tak naprawdę szukam kontaktów, może widywania ich online, prowadzenia inteligentnych rozmów itp. Tam, gdzie mieszkam, nie ma wokół mnie zbyt wielu programistów, ponieważ jestem samozatrudniony. Jestem pewien, że gdybym miał pracować w firmie, byłbym otoczony przez niektórych. Nie wiem, może udostępniać nasze pseudonimy, facebooki czy coś.


title: Konfiguracja rozwoju w firmie z zewnętrznymi programistami

text: EDYCJA: Chodzi o to, gdzie użytkownicy będą mieli swoje pliki i TESTUJ swoje zmiany - serwer programistyczny, aby mogli edytować, zapisywać, a następnie odświeżać stronę, aby zobaczyć, co się zmieniło. Obecnie przeglądam nasze systemy, które mamy na miejscu, mamy tu 2 wewnętrznych programistów i 2 projektantów. Wszystkie 4 używały tego samego serwera do prac rozwojowych z własnymi środowiskami i bazami danych oraz kodem, który mieści się w zewnętrznym repozytorium SVN, działa to całkiem fajnie, jednak szukamy otwarcia tego serwera dla personelu zewnętrznego. Mamy 2 zewnętrznych projektantów, którzy chcielibyśmy mieć możliwość edytowania plików/wstawiania projektów itp. Jeden z nich działa na Macu, a na innych oknach - najlepiej, jeśli chcielibyśmy otworzyć dostęp do naszego serwera programistycznego, ale jeden z tych użytkowników jest na zewnątrz kraju, więc dostęp byłby powolny dla czegokolwiek innego niż coś, co działa w terminalu, ale używają graficznych IDE. Czy ktoś ma jakieś doświadczenie/jak radzą sobie z tym jego firmy? Niezbyt chętny do przesyłania, sprawdzania, edytowania, przesyłania, sprawdzania itp. FTP


title: Po co rozdzielać testy jednostkowe na zespół?

text: Rozwijam się głównie w .Net i bawię się językiem F#. To fajny, zwięzły język, ale obecnie używam go tylko do kodu jednorazowego. Zacząłem umieszczać swoje testy w tym samym pliku, co główny kod, który piszę. Jestem pod niezbadaną opinią, że robi się to po to, abyśmy nie mieli kodu testowego krążącego w środowisku produkcyjnym i że mamy osobne zależności do testowania, których nie chcemy przechodzić do produkcji. Pojawiło się dla mnie pytanie: dlaczego tradycyjnie oddzielamy zestawy testowe, a nie tylko używamy kompilacji warunkowej?


title: Jak zaimplementować interaktywne programy (takie jak gry/symulacje) za pomocą programowania logicznego?

text: Słyszałem, że programowanie logiczne może służyć jako uniwersalna alternatywa dla innych paradygmatów programowania, takich jak OO czy programowanie funkcjonalne. (Ponieważ Prolog jest kompletny pod względem Turinga, tak musi być!) Jednak mam problem ze zrozumieniem, jak można zaimplementować interaktywny program, taki jak prosta, graficzna gra konsolowa w Prologu lub podobnym języku. Masz fakty, reguły, które mogą wyprowadzić więcej faktów i zapytania, które pobierają fakty. Łatwo zobaczyć, jak wykorzystać te podstawowe elementy do stworzenia czegoś takiego jak solver sudoku. Ale co z Pac-manem, albo prościej Pongiem? **UWAGA:** nie szukam szczegółów na niskim poziomie, ale omówieniem koncepcji. (Na przykład: w kategoriach wysokiego poziomu, jak poradziłbyś sobie z I/O? Jak przechowywałbyś stan gry? Jak zaimplementowałbyś coś takiego jak „główna pętla”? Jak byś mierzył i reagował na upływ czasu? )


title: Jak zbudować nowoczesną aplikację internetową

text: ## Tło Ostatnio stworzyłem dla dwóch różnych projektów dwie aplikacje internetowe. Obaj stosowali zupełnie inne podejście. Pierwsza była klasyczną aplikacją inwentaryzacyjną (listy rzeczy do przeglądania, wybierania, edycji... bardzo CRUD) i została stworzona z Razor i ASP.NET MVC: kontroler akceptujący żądania, pobieranie modelu przez repozytorium, budowanie różnych Viewmodeli z go do przeglądania i edycji, przekaż Viewmodel do silnika widoku i renderuj stronę. Bardzo bezpośrednie rzeczy (można prawie zbudować taką aplikację za pomocą kreatorów tylko przy użyciu ASP.NET MVC), z bardzo małą „magią” Javascriptu (tylko minimalna oferowana od razu przez framework MVC, głównie do walidacji). Druga była zupełnie inna: ta aplikacja to w zasadzie kilka ekranów (widoków), po których użytkownik może nawigować tam iz powrotem, których wygląd zmienia się, gdy użytkownicy wprowadzają dane w różnych miejscach - jest to w zasadzie hub, w którym użytkownik przegląda i przegląda informacje powiązane z jego kontem (kontami). Zbudowałem tę drugą aplikację jako usługę REST (zbudowaną za pomocą ServiceStack, a zatem zgodnie z wzorcami projektowymi, które wymusza - jak Data Transfer Object) oraz aplikację SPA zaimplementowaną przy użyciu AngularJS. Aplikacja kątowa używa swojej (doskonałej) usługi http, aby pobrać obiekty JSON z usługi reszty, a następnie wypełnić jej (po stronie klienta) Viewmodel (zakres). Bardzo schludny i czysty; łatwo jest poruszać się tam iz powrotem po różnych informacjach o koncie (które są wizualizowane na wiele różnych sposobów: listy, wykresy, ...) Czasami kodowanie może być nieco trudniejsze (uwierzytelnianie/autoryzacja jest nieco trudniejsza ( musisz uważać, aby naśladować kontrolę na kliencie i serwerze).Teraz zaczynam trzeci projekt.To coś pomiędzy: nadal jest to aplikacja CRUD, ale musi być bardzo responsywna.Na przykład, na stronie mamy do wprowadzenia złożoną informację (kombinacja formularza i listy), na liście użytkownik musi wybrać element z innej listy, ale jeśli elementu tam nie ma, chcemy otworzyć „edycję elementów listy” wyświetl, pozwól mu/jej wstawić element i wróć do oryginalnej strony... wszystko bez odświeżania/odpychania/... Masz pomysł ## Pytanie Jaki jest najlepszy sposób na osiągnięcie tego, opracowanie nowoczesna, szybka, responsywna aplikacja internetowa?Widziałem zbyt wiele różnych podejść: * podejście "oparte na kontroli" (jQuery): budowanie strony e używając swojego frameworka MVC (który utworzy html, na przykład tabelę), użyj jQuery, aby "wzbogacić" html i uczynić go ajax * "data based" (Angular): zbuduj stronę jako stronę html z powiązaniami danych, aplikacji JS i strukturyzowania strony serwera jako usługi REST, której aplikacja JS używa do pobierania/publikowania danych * mix #1: część aplikacji jest zbudowana przy użyciu frameworka MVC (który wypluwa html), część za pomocą danych oparte na frameworku (jak kątowe). Zakres/model kątowy jest inicjowany za pomocą jQuery w celu wyodrębnienia początkowych danych z html DOM. * mix #2: część aplikacji jest zbudowana przy użyciu frameworka MVC (który wypluwa html), część przy użyciu frameworka opartego na danych (takiego jak Angular). Oprócz html serwer zapisuje „skrypt”, który jest danymi JSON i osadza go na stronie. Angular następnie używa go jako swojego modelu do renderowania wizualizacji danych (po stronie klienta) * mix #3: to samo, ale tym razem bez wbudowanego JSON: serwer udostępnia usługę REST, która jest używana przez Angular do pobierania potrzebnych danych. Zasadniczo jest to część generowana na serwerze, część na kliencie poprzez wywołanie secon, aby uzyskać obiekt JSON * (więcej ...?) Osobiście uważam, że miks #1 i #2 jest brzydki, ale jestem zbyt „nowy”, aby nowoczesny rozwój Javascript do oceny. Czy są powszechne? Widzę na przykład, że jedną z zalet miksu nr 1 jest to, że natychmiast otrzymujesz widok początkowy, nie musisz czekać, aż JS go wyrenderuje. A oba miksery #1 i #2 wykonują tylko jedno połączenie z serwerem. Więc która z nich jest najlepszą praktyką? Lub którego (których) powinienem naprawdę unikać? Ja (osobiście) czuję się bardziej komfortowo z mieszanką stron generowanych po stronie serwera i JS po stronie klienta; zrobienie SPA w pełni korzystającego z usług nie było takie proste, nie raz chciałem mieć coś wygenerowanego za pomocą logiki po stronie serwera, ale może robię to źle (dlatego pytam!)


title: Kodowanie skryptu bash do użytku w Pythonie

text: Piszę kod w Pythonie, który sprawdza ważność klucza licencyjnego po odpytywaniu serwera. Jeśli jest poprawny, program Pythona z kolei uruchamia kilka skryptów bash. Jak stworzyć kombinację pliku binarnego skryptu Pythona (aby sprawdzić licencję) i skryptu bash (który wykonuje zadanie)? Oto, co moim zdaniem może być rozwiązaniem, ale naprawdę nie jestem pewien: 1. Używam funkcji kodowania w pythonie i koduję raz plik skryptu bash i dodaję połączenie tego pliku i pliku license_checker.py w jeden plik binarny. Po uruchomieniu pliku binarnego kod Pythona powinien zdekodować plik do pliku tymczasowego, uruchomić skrypt i usunąć plik tymczasowy. 2. Znajdź mechanizm, który opakowuje/osadza kod bash w skrypcie Pythona. Słyszałem o dekoratorach, ale nie używałem ich i nie wiem, czy będą służyć do tego celu.


title: Jak mogę obronić Ruby on Rails przed nietechnicznymi opiniami klientów?

text: Mój klient, właściciel firmy tłumaczeniowej, właśnie powiedział mi, że czytał o Ruby on Rails i powiedział mi, że " _jest tam więcej facetów od PHP_ " i " _wygląda na to, że społeczność to woli_ ". Co byś jako inżynier oprogramowania i freelancer powiedział klientowi, aby osiągnąć te cele: * Sprzedaj * Spraw, aby zobaczył, że technologia jest moją decyzją eksperta, a Railsy są tak samo dobre lub lepsze niż PHP (+ jakikolwiek framework) dla tego konkretnego projektu . AKTUALIZACJA: Dziękuję wszystkim za sugestie! Jutro mam z nim kolejne spotkanie, zobaczmy jak poszło, jeszcze raz zaktualizuję :) AKTUALIZACJA 2: W końcu kazałem mu przeczytać ten wątek i wynik był fantastyczny: Dał mi projekt i jedziemy do zacznij już teraz. Dziękuję wszystkim za pomoc, macie u mnie darmowe piwo, jeśli kiedyś zobaczymy :) BTW: Wyciągnąłem lekcję: bądź jak najbardziej transparentny, bo jeśli wierzysz w siebie i swoją pracę, nie ma mowy o kompromisach pokonać ciebie. pozdrowienia


title: Przegląd Google App Engine

text: Przeszedłem przez wiele samouczków Google App Engine i zapoznałem się z podstawowymi czynnościami, takimi jak implementacja `webapp2.RequestHandler` i używanie `ndb.Models` do zarządzania danymi. Teraz dotarłem do ściany z kilkoma małymi koncepcjami, których albo brakowało w zasobach, które przejrzałem, albo po prostu je przegapiłem. Oto one: ### Co się dzieje ze zmiennymi klas? O ile zrozumiałem, po ustawieniu mojej aplikacji na bezpieczną wątkowo, może ona obsługiwać wiele żądań jednocześnie, nie wspominając o możliwościach na różnych komputerach. Czy to oznacza, że po prostu nie mogę używać zmiennych klasowych (które można zmienić w dowolnym momencie)? ### Jak zamodelować logikę całej aplikacji? Pisanie logiki związanej z żądaniami jest bardzo proste. Nie muszę się martwić blokowaniem ani innymi rzeczami, ponieważ dla każdego żądania tworzona jest nowa instancja obsługi żądań. A co z logiką obejmującą całą aplikację? Na przykład, gdybym miał moduł Pythona o nazwie „Gra”, a po zaimportowaniu go robię coś takiego: `Game.matchmaking_queue.append(player)` O ile wiem, jest tylko jedna instancja `Game` i ma zmienną instancji dostępną z logiki `RequestHandler`. Czy to będzie w porządku? Czy muszę utworzyć `matchmaking_queue` w pamięci memcache i/lub datastore, aby **wszystkie** żądania mogły ją zobaczyć? Czy muszę wykonywać jakąś magię zabezpieczającą wątki w `Grze`?


title: Testy na pustkę vs testy na nicość

text: Czy istnieje konsensus między językami, w jaki sposób testy na pustkę różnią się od testów na pustkę? W pythonie następujące wyrażenie jest fałszywe: `{} is {}` Jednak to wyrażenie ma wartość True `False is False` Dlaczego pierwsze wyrażenie nie jest oceniane jako True?


title: Jak wymawiasz operator „...”?

text: Teraz w c++ '...' stało się operatorem pierwszej klasy. W mowie, jak to wymawiasz? Do tej pory słyszałem: * kropka kropka * potrójna kropka * związane z wielokropkiem: Czy można zastąpić ... wielokropkiem na piśmie? np. „Operator wielokropka rozszerza pakiet” EDIT (wyjaśnienie): Wszyscy wiemy, że „...” jako znak **interpunkcyjny** jest rzeczywiście nazywany wielokropkiem. Ale w kontekście C++ nie wymawiamy nazw znaków interpunkcyjnych. Na przykład operator '&', zależny od kontekstu, jest wymawiany jako 'i', 'bitowe i', 'adres', 'logiczne i' (gdy użyto &&) lub 'odwołanie'. Rzadko wymawia się go jako „ampersand”. W przemówieniach mam wrażenie, że częściej używa się „kropka kropka”. Na przykład: http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Variadic-Templates-are-Funadic (doskonała prezentacja o szablonach variadic). Z drugiej strony „kropka kropka” jest niezręcznie trudna do wymówienia („d” i „t” są wymawiane językiem). Czy możemy to wymówić „rozpakować”?


title: Jak mogę pozbyć się tylko nieśledzonych plików w git?

text: W Mercurial mogę to zrobić za pomocą dołączonego rozszerzenia Purge i wykonując następujące polecenie: hg purge Dobrze jest też pozbyć się ignorowanych plików: hg purge --all Jestem ciekawy najbardziej praktycznego/używanego rozwiązania w git. **Edytuj** : Chcę po prostu pozbyć się nieśledzonych plików, a nie resetować wszystkiego (np. Załóżmy, że mam program generujący pliki pamięci podręcznej lub wygenerowany kod i chcę je usunąć z pomocą git)


title: Buduj raz, wdrażaj w wielu środowiskach

text: Buduję jeden oddział **MAIN**. To jest nasz bagażnik i jedyna baza kodu dla projektu. Po zbudowaniu idealnie byłoby stale wdrażać je w naszym środowisku deweloperskim. Gdy programiści potwierdzą działanie w tym środowisku Dev, chciałbym po prostu opublikować binaria, które zostały wcześniej zbudowane, w środowisku testowym. Gdy kontrola jakości potwierdzi działanie w środowisku testowym, chciałbym opublikować te same oryginalne pliki binarne w środowisku Stage, a następnie w środowisku produkcyjnym. Myślę, że to trochę jak wdrażanie starej szkoły, w której po prostu kopiujesz pliki binarne do pudełka, do którego przeprowadzasz instalację. Wszelkie strategie, samouczki, wskazówki, linki i rekomendacje oprogramowania stron trzecich (najlepiej z linkiem do samouczka) są mile widziane. Jeśli to możliwe, chciałbym zachować wszystko w programie Visual Studio.


title: Przetwarzanie listy operacji atomowych, z uwzględnieniem przerw

text: Szukam wzorca projektowego, który rozwiązuje następującą sytuację: 1. Istnieje lista zadań, które muszą zostać przetworzone. 2. Zadania można dodawać w dowolnym momencie. 3. Każde zadanie jest całkowicie niezależne od wszystkich innych zadań. 4. Kolejność przetwarzania zadań nie ma wpływu na cały system ani na same zadania. 5. Każde zadanie musi być przetworzone raz i tylko raz. 6. „Główny” proces, który uruchamia procesory zadań, może się uruchamiać i zatrzymywać bez ostrzeżenia. Po zatrzymaniu „główny” proces traci wszystkie dane w pamięci. Oczywiście będzie to wymagało pewnego stanu, ale czy są jakieś wzorce projektowe, które omawiają, gdzie i jak utrzymać ten stan? Czy istnieją jakieś odpowiednie antywzorce? Nazwane wzorce są szczególnie przydatne, ponieważ możemy omawiać ten temat z innymi organizacjami bez konieczności opisywania całej domeny problemu.


title: Ile segregacji to za dużo w tym projekcie?

text: Pracujemy nad aplikacją webforms ASP.NET opracowaną przy użyciu WCSF (wzorzec MVP). W aplikacji znajduje się ekran wyszukiwania, który umożliwia użytkownikowi wpisanie niektórych pól i wyświetlenie wyników. Funkcjonalność podzieliliśmy na kontrolki użytkownika, a każda kontrolka użytkownika ma swój własny widok i prezenter. 1. Szukaj -> Składa się z pól wyszukiwania wraz z przyciskiem przesyłania. Zawiera walidacje wewnątrz prezentera. Po zweryfikowaniu strony wywołuje zdarzenie niestandardowe. 2. Kryteria wyszukiwania -> Zawiera kontrolkę DataList do wyświetlania kryteriów wyszukiwania tylko do odczytu przez zasubskrybowanie zdarzenia wyszukiwania. 3. Wyniki wyszukiwania -> Komunikuje się ze sterownikiem i łączy siatkę poprzez zapisanie się do zdarzenia wyszukiwania. Zawiera również sortowanie i wszystkie zdarzenia związane z siatką. Ponieważ każda kontrolka ma swoje własne kontrolki i zachowanie zgodnie z zasadami SOLID, widoki i prezentery są cienkie i testowalne. Zwiększył również produktywność, ułatwiając programistom samodzielne wykonywanie zadań. Ale z drugiej strony zastanawiamy się, czy nie przesadziliśmy z inżynierią i zwiększyliśmy złożoność, wprowadzając kontrolki użytkownika, niestandardowe zdarzenia itp. dla tej prostej funkcji?


title: RESTful API development : czy jest to praca web developera czy praca programisty?

text: Przede wszystkim przepraszam, że problem, który powiem, nie jest kwestią techniczną. Jestem tylko zmieszany. Próbuję aplikować do kilku firm jako inżynier oprogramowania. Ostatnią pracą, którą opracowałem, jest tworzenie interfejsów API RESTful, które są napisane w Python django. Oto problem, który mnie ciekawi. czy ta praca może być zakwalifikowana jako praca inżyniera oprogramowania? czy to tylko praca web developera?


title: Dlaczego „responsywne” projektowanie stron internetowych nie powinno być brane pod uwagę?

text: To może wydawać się bardziej pytaniem dotyczącym projektowania graficznego niż pytaniem programistycznym, ale myślę, że ma o wiele więcej zalet technicznych/programistycznych niż rzeczywisty projekt graficzny. Koncepcja „responsywnego” projektowania stron internetowych opiera się na wykorzystaniu zapytań o media w CSS3 w celu wykrycia rozmiaru urządzenia wyświetlającego i odpowiedniego dostosowania reguł CSS - zasadniczo dynamicznego CSS. To wypełnia lukę w wielu przypadkach wdrożeń - w szczególności mobilnych. Myślę, że korzystanie z zapytań o media pojawia się powoli (odkryłem, że wiele osób tak naprawdę o tym nie wie), ale zastanawiam się, czy istnieje powód powolnego przyjmowania. Czy jest to niepraktyczne w przypadku aplikacji internetowych? Czy brakuje mi czegoś, co może być podstawową pułapką?


title: Czy istnieje wzorzec projektowy do aktualizowania list?

text: Chcę zmodyfikować jedną listę (właściwie informacje przechowywane w bazie danych). Osoba nie ma dostępu do aktualizowania każdej części listy, ale może aktualizować i usuwać części, do których ma dostęp, i dodawać do listy wszystko, co chce. Oto mój pseudokod: ModifiedList OriginalList OriginalListWithUserRights dla każdej Rzeczy w ModifiedList wykonaj if Thing in OriginalList then //Leave Along - nic więcej do zmiany OriginalList.add(Thing) dla każdej Thing w OriginalList wykonaj if (Thing in ModifiedList) then //LeaveAlone - nic do zmiany (tak samo jak powyżej) else dla każdego RightsThing w OriginalListWithUserRights rób if RightsThing not in OriginalList then //Leave Alone - nie usuwaj rzeczy, do których nie masz uprawnień else OriginalList.Remove(RightsThing) OriginalList.ReIndex() //ponieważ będą jakieś luki Więc myślę, że to by zadziałało, ale myślę, że to nie w porządku, ponieważ jest to po prostu oczywiste rozwiązanie. Nie muszę zaczynać od trzech list jako moich danych wejściowych do tej funkcji. Mogę wyszukać określone informacje podczas przeglądania mojej zmodyfikowanej listy. Wydaje się po prostu uporządkowany i niewystarczająco zorientowany obiektowo na rok 2014. Jednym z problemów, jaki mam, jest to, że zamierzam dodać wszystko na końcu listy, wydaje się, że powinienem dodawać rzeczy w stosunku do tego, gdzie się znajdowały listy, ale w sposób, który nie psuje kolejności rzeczy, których nie ma w moim OriginalListWithUserRights.


title: Jak zatrzymać usługę WCF (zapytania do bazy danych) działającą w tyle

text: Posiadam usługę WCF, która otrzyma obiekt z ogromną ilością danych z bazy danych w postaci kolekcji. Mam interfejs użytkownika, który ma przyciski Pobierz i Anuluj. Przycisk Get : złóż żądanie usługi i kontynuuj wypełnianie danych zwróconymi danymi z usługi. Uruchamiam to jak poniżej Thread _workerThread = new Thread(DoExportTreeLoad); _workerThread.Start(); Anuluj : zatrzymuje powyższy wątek. Działa jak poniżej _workerThread.Abort() Moja DoExportTreeLoad() ma synchroniczne wywołanie usługi, które z kolei trafia do bazy danych i pobiera dane. wynik = usługa.GetData(kryteria); Problem: Gdy anuluję operację po zleceniu usługi, kod DAL nadal działa w tle (pobieranie danych z bazy danych), gdzie nie powinno się to zdarzyć. Jak tylko anuluję operację z interfejsu użytkownika, transakcja (w celu uzyskania danych) z bazy danych musi zostać przerwana. Prowadzi to do dużego problemu z wydajnością. Pomóż mi w jakikolwiek sposób zakończyć zadanie backendu, gdy wątek zostanie anulowany. Z góry dziękuję.


title: Projekt Pythona do sterowania wieloma urządzeniami za pośrednictwem magistrali I2C

text: Piszę oprogramowanie w Pythonie, które będzie komunikować się z wieloma urządzeniami za pośrednictwem magistrali I2C. Każde z tych urządzeń będzie potrzebowało jakiegoś modułu lub klasy, aby w sensowny sposób obsłużyć komunikację i konwersję danych. Operacje, które wykonuje każdy z modułów urządzenia, są drastycznie różne. Moim głównym zmartwieniem jest sterowanie magistralą I2C. Obawiam się, że współdzielenie magistrali, na przykład posiadanie przez każdy z modułów urządzenia instancji nowego obiektu sterującego magistralą I2C, spowoduje kod, który jest trudny do naśladowania i nie jestem pewien, jak te obiekty miałyby się komunikować, gdyby w magistrali było przerwanie . Jednak nie dzieląc się tym, obawiam się, że skończę z _ogromną_ klasą kontrolną, która jest trudna do utrzymania i rozszerzenia. Jeśli skłaniam się ku klasie kontrolnej, każdy z modułów urządzenia zawierałby mapę operacji, taką jak `OrderedDict` lub listę krotek funkcji z oczekiwanymi wartościami wyników lub zakresami. Obiekt kontrolny I2C mógłby następnie iterować ten słownik, zapisywać i odczytywać wyniki z magistrali i przejść do następnej funkcji, jeśli wynik mieści się w oczekiwanym zakresie. Brzmi to jak konstrukcja maszyny stanowej, ale nie jestem pewien, czy naprawdę mogę wystarczająco uogólnić wszystkie operacje. Przypuszczam, że moje pytanie sprowadza się do _czy ktoś ma dobrą propozycję wzorca projektowego_?


title: Podziel duże interfejsy

text: Używam dużego interfejsu z około 50 metodami dostępu do bazy danych. Interfejs został napisany przez mojego kolegę. Rozmawialiśmy o tym: Ja: 50 metod to za dużo. To zapach kodu. Kolega: Co mam z tym zrobić? Chcesz mieć dostęp do bazy danych - masz go. Ja: Tak, ale jest to niejasne i trudne do utrzymania w przyszłości. Kolega: OK, masz rację, to nie jest miłe. Jak wtedy powinien wyglądać interfejs? Ja: Co powiesz na 5 metod, które zwracają obiekty, z których każda ma po 10 metod? Mmmh, ale czy to nie byłoby to samo? Czy to naprawdę prowadzi do większej przejrzystości? Czy warto się starać? Od czasu do czasu jestem w sytuacji, w której chcę mieć interfejs i pierwszą rzeczą, jaka przychodzi mi do głowy, jest _jeden, duży_ interfejs. Czy istnieje ogólny wzorzec projektowy do tego? * * * **Aktualizacja** (odpowiada na komentarz SJuana): „rodzaj metod”: jest to interfejs do pobierania danych z bazy danych. Wszystkie metody mają postać (pseudokod) List<NazwaTypu> createTablenameList() Metody i tabele nie są dokładnie w relacji 1-1, nacisk kładziony jest bardziej na fakt, że zawsze otrzymujesz jakąś listę pochodzącą z bazy danych.


title: Prawo tworzenia stron internetowych/własność strony internetowej

text: Jestem początkującym twórcą stron internetowych i zastanawiałem się, czy edytowanie witryny przez klienta w celu dołączenia linku z napisem „Zachęć właściciela tej witryny do zapłaty swojemu programiście internetowym” i wysyłanie gotowego e-maila jest nielegalne zachęcanie mężczyzny, aby mi zapłacił. Oto warunki: * Wykonałem pracę na zamówienie. * Poprosiłem o zapłatę i próbowałem umówić się na spotkanie z właścicielem. * Poinformowałem właściciela witryny, że moja praca nie będzie kontynuowana, dopóki nie otrzymam zapłaty. * Powinienem otrzymać zapłatę prawie miesiąc temu (12/27) Masz inne myśli niż drobne roszczenia? To moja pierwsza praca w zakresie tworzenia stron internetowych!


title: Doradztwo zawodowe: zmiana z programisty na testera

text: Mam trzyletnie i dziewięciomiesięczne doświadczenie w tworzeniu oprogramowania Java, w szczególności w dziedzinie finansów, a teraz chcę przejść do testowania (funkcjonalnego). Ale zrobiłem sobie przerwę w pracy z powodu zmiany lokalizacji. Czy jest to wskazane i jak mam to zrobić?


title: Czy testy integracji front-endu powinny wykonywać żądania HTTP?

text: Zajmuję się tworzeniem jednostronicowej aplikacji internetowej przy użyciu AngularJS. Dane dla tej aplikacji są zużywane przez interfejs API REST, który jest dobrze przetestowany sam w sobie. Aplikacja Angular posiada szereg testów jednostkowych, które testują m.in. poszczególnych kontrolerów i ich metod. Ma również kilka testów integracyjnych, które obecnie sprawdzają, czy te kontrolery zachowują się poprawnie po zastosowaniu do widoku. Zarówno testy jednostkowe, jak i integracyjne współdzielą obecnie zestaw zakodowanych danych JSON, które są zwracane, gdy mają zostać wykonane określone żądania HTTP (za pośrednictwem usługi Angular `$httpBackend`). Podczas testowania do serwera API nie są wysyłane żadne rzeczywiste żądania HTTP. **Czy to dobre podejście do testowania integracji front-endu?** Z mojego punktu widzenia testy jednostkowe testują małe jednostki kodu (takie jak poszczególne metody w kontrolerach), a testy integracyjne testują sposób, w jaki te jednostki się zachowują w szerszym kontekście widoku lub szablonu. Konfiguracja umożliwia całkowicie niezależne testowanie aplikacji front-end. Jednak twórcy Protractora (szkieletu do testowania integracji, którego używam) wielokrotnie stwierdzili, że uważają, że testy integracyjne powinny wysyłać żądania HTTP do prawdziwego serwera (zobacz ten problem na GitHubie): > Protractor jest przeznaczony do testów typu end-to-end , więc głównym przypadkiem użycia jest sytuacja, gdy > masz podłączony rzeczywisty backend. Zakładając, że odpowiedź na powyższe pytanie brzmi „tak” (lub „być może”), czy powinien istnieć trzeci zestaw testów, które faktycznie testują komunikację między aplikacją front-endową a REST API?


title: SQLite z dwoma procesami Pythona uzyskującymi do niego dostęp: jeden odczyt, jeden pisanie

text: Zajmuję się tworzeniem małego systemu z dwoma komponentami: jeden odpytuje dane z zasobu internetowego i tłumaczy je na dane sql, aby zachować je lokalnie; drugi odczytuje dane sql z lokalnej instancji i obsługuje je za pośrednictwem json i spokojnego interfejsu API. Początkowo planowałem utrwalić dane za pomocą postgresql, ale ponieważ aplikacja będzie miała bardzo małą ilość danych do przechowywania i ruchu do obsługi, pomyślałem, że to przesada. Czy SQLite poradzi sobie z zadaniem? Podoba mi się pomysł niewielkich rozmiarów i nie ma potrzeby utrzymywania kolejnego serwera sql do tego jednego zadania, ale martwię się o współbieżność. Wydaje się, że przy włączonym zapisie z wyprzedzeniem, jednoczesne odczytywanie i zapisywanie bazy danych SQLite może odbywać się bez blokowania żadnego procesu z bazy danych. Czy pojedyncza instancja SQLite może obsługiwać dwa współbieżne procesy uzyskujące do niej dostęp, jeśli tylko jeden odczytuje, a drugi zapisuje? Zacząłem pisać kod, ale zastanawiałem się, czy jest to niewłaściwe zastosowanie SQLite.