title: kod odpowiedzi serwera WWW 500

text: Zdaję sobie sprawę, że może to wywołać dyskusję religijną, ale przedyskutowałem to z przyjaciółmi i otrzymałem świetne, ale sprzeczne odpowiedzi i faktyczna dokumentacja niewiele pomagają. Co oznaczają kody odpowiedzi serii 500 z serwera WWW? Wewnętrzny błąd serwera, ale to jest niejasne. Zakładam, że oznacza to, że coś złego stało się z serwerem (uszkodzenie systemu plików, brak połączenia z bazą danych, problem z siecią itp.), ale nie konkretnie błąd oparty na danych (dzielenie przez zero, brak rekordu, zły parametr itp.) . Należy zauważyć, że istnieją pewne implementacje klientów internetowych (domyślne httpclients Androida i Blackberry), które nie pozwalają na dostęp do treści HTML, jeśli odpowiedź serwera wynosi 500, więc nie ma sposobu, aby określić, co spowodowało problem od klienta. To, co ostatnio zaimplementowałem, to usługa sieciowa, która zwraca ładunek json opakowany w obiekt odpowiedzi, który zawiera bardziej szczegółowe informacje o błędach, jeśli jest to związane z danymi, ale odpowiedź serwera będzie wynosić 200, ponieważ zakończył faktyczne przetwarzanie. Myśli?


title: Czy utrzymanie kodu jest zazwyczaj specjalnym projektem, czy jest uważane za część codziennej pracy?

text: Wcześniej poprosiłem o sprawdzenie, które narzędzia są powszechnie używane do monitorowania metod i baz kodu, aby dowiedzieć się, czy metody nie są zbyt długie. Większość odpowiedzi sugerowała, że poza konserwacją obecnie edytowanej metody programiści nie mają na ogół uwagi na resztę kodu. Pomyślałem więc, że zadam ogólne pytanie: czy generalnie utrzymanie kodu jest uważane za część twojej codziennej pracy? Czy uważasz, że spędzasz przynajmniej część swojego czasu na czyszczeniu, refaktoryzacji, przepisaniu kodu w bazie kodu, aby go ulepszyć, w ramach innej przypisanej Ci pracy? Czy oczekuje się tego od ciebie/czy oczekujesz tego od swoich kolegów z drużyny? A może częściej zdarza się, że czyszczenie, refaktoryzacja i ogólna konserwacja bazy kodu jako całości odbywa się w seriach (na przykład głównie w ramach przeglądów kodu lub w ramach refaktoryzacji/oczyszczania projektów)?


title: Budowanie satysfakcjonującej społeczności w pracy

text: We wpływowym „Peopleware” DeMarco i Lister twierdzą, że organizacja, która buduje satysfakcjonującą społeczność, będzie miała tendencję do zatrzymania swoich ludzi. W pracy pracuje około 40 programistów. Jak mamy stworzyć z nich „wspólnotę”?


title: Projekty Open Source prowadzące do wyjątkowo interesujących możliwości

text: Nie jestem pewien, czy zapytałem o to we właściwym miejscu (jest to związane z rozwojem). Byłoby wspaniale, gdybyś skierował mnie we właściwe miejsce, gdybym zapytał w niewłaściwym miejscu. Byłem zachęcany przez gospodarzy podczas niektórych wycieczek po firmie do udziału w społeczności oprogramowania open-source, jeśli jestem zainteresowany oprogramowaniem. Powodem jest wykazanie inicjatywy, aby wnieść przydatne komponenty do projektu, podczas gdy inni mogą ocenić jakość twoich praktyk projektowania i kodowania. Jednak poza studiami przypadków wykupienia CUSP przez Apple Inc., nie przychodzi mi do głowy inne studia przypadków pokazujące tendencję do przyciągania interesujących możliwości w dłuższej perspektywie. Czy masz jakieś głośne projekty spełniające te kryteria, które przychodzą Ci do głowy? Doceń to z góry za swoje sugestie!


title: Plusy rozpoczęcia nauki programowania w Pythonie, jeśli naprawdę chcę JavaScript?

text: Mój przyjaciel chce nauczyć się programowania w JavaScript, ale nigdy wcześniej nie programował. Znalazłem Pythona jako całkiem fajny język, który usuwa z nauki programowania większość niepotrzebnej "dziwności", pozostając jednocześnie użytecznym. Osobiście moim pierwszym językiem był Pascal i chociaż trochę eksperymentowałem z C++, C, Javą, C#, PHP i Javascriptem, potem znalazłem Pythona i to jest to, czego używam najczęściej od lat. Uważam, że Python jest dobrym językiem do wprowadzania większości koncepcji programowania w sposób, w którym można skupić się na koncepcji, a nie na języku. Właściwie imho Python ma tylko 1 duży błąd, znaczącą białą spację, podczas gdy inne języki często zawierają więcej tego, co jest niepotrzebne przy wprowadzaniu dzisiejszego programowania (takie jak narzut, wskaźniki, niejawne konwersje, przeciążanie operatorów itp.). Słyszałem również, że wielu instruktorów używa tego języka do wprowadzania koncepcji programowania i zazwyczaj zgadzam się z tym wyborem. Ponieważ JavaScript ma swoje mocne i słabe strony jako język wprowadzający do programowania, zastanawiałem się, czy nie warto zamiast tego używać Pythona do nauki programowania, a następnie uczyć się JavaScript, kiedy już rozumiesz wiele pojęć programowania. Nie jestem przyzwyczajony do nauczania, więc zapytałbym tych, którzy są, jakie zalety i wady miałoby uczenie Pythona w pierwszej kolejności w stosunku do natychmiastowego nauczania JavaScript, dla nowicjusza w programowaniu?


title: Czy menedżerowie powinni zabronić programistom korzystania z komunikatorów internetowych w biurze?

text: > **Możliwy duplikat:** > Czy pozwolisz swoim programistom korzystać z Messengera i sieci społecznościowych, takich jak > Facebook? Menedżer może uważać, że korzystanie z komunikatorów internetowych w biurze jest niedopuszczalne, ale wielu programistów używa ich w uzasadnionych celach, na przykład w celu łatwego kontaktu ze sobą. Czy uważasz, że zakaz czatu przez komunikator jest rozsądny?


title: Czy powinienem wymagać od programistów testów jednostkowych?

text: Pracuję w miejscu, w którym kupujemy dużo projektów IT. Obecnie opracowujemy standard dla wymagań systemowych dla zapotrzebowania na przyszłe projekty. W trakcie tego procesu zastanawiamy się, czy możemy wymagać od naszych dostawców zautomatyzowanych testów jednostkowych. Głęboko wierzę, że właściwe zautomatyzowane testy jednostkowe to jedyny sposób na udokumentowanie jakości i stabilności kodu. Wszyscy inni wydają się myśleć, że testowanie jednostkowe jest opcjonalną metodą, która dotyczy tylko dostawcy. W związku z tym nie będziemy wymagać zautomatyzowanych testów jednostkowych, ciągłych testów, raportów pokrycia, inspekcji testów jednostkowych lub jakiegokolwiek innego rodzaju. Uważam, że ta polityka jest niezwykle frustrująca. Czy jestem tutaj całkowicie poza linią? Proszę o uzasadnienie każdej opinii.


title: XML lub HTML do instrukcji obsługi/pomocy i dlaczego?

text: Chcę dodać instrukcję obsługi/pomoc do mojego programu. Znalazłem dwa dobre sposoby — XML lub HTML — których powinienem użyć i dlaczego? Wiem, jak to zrobić w html (wiem, jak używać js, css i tak dalej), ale w XML jest to trudniejsze (albo sobie wyobrażam?) Tak czy inaczej, w jaki sposób mam wybrać i dlaczego?... **Edycja**: Jest jedna ważna rzecz, o której zapomniałem wspomnieć: potrzebuję tego dla wojska, mogę to zrobić tylko na komputerze wojskowym i nie mogę zainstalować niczego, co powiedziałeś. Mogę korzystać z notatnika i to wszystko.


title: Jak zarządzać dwiema głównymi wersjami za pomocą SVN?

text: W firmie, w której pracuję, obsługujemy dwie wersje tworzonego przez nas oprogramowania. Jedna wersja jest dostępna dla klientów, a druga, w której programiści opracowują nowe funkcje. Wersja dostępna dla klientów jest również zmieniana przez programistów, aby naprawić błędy znalezione przez naszych klientów. Na przykład mamy dostępną dla klientów wersję 4.1 i rozwijamy 4.2. Jak tylko wydamy 4.2, 4.1 zostanie zamknięty i zaczynamy rozwijać się na 4.3. Obecnie posiadamy dwa trunki, po jednym dla każdej otwartej do rozwoju wersji. Za każdym razem, gdy błąd zostanie naprawiony w wydanej wersji, musimy go również połączyć z nową wersją. To dodatkowa praca. Poza tym chcielibyśmy pracować z wyprzedzeniem, mieć gotową wersję już „na półce”, a już startować z nową wersją. Co oznaczałoby, że jeśli naprawimy błąd w wydanej wersji, musielibyśmy połączyć go w trzech pniach! Czy istnieje lepszy sposób na uporządkowanie tego i ewentualnie wyeliminowanie zduplikowanych połączeń? Czy robimy coś zupełnie nie tak? Z góry dziękuję.


title: Jakie są słynne jednolinijkowe lub dwuliniowe programy i równania?

text: Eksperymentuję z nową platformą i próbuję napisać program, który zajmuje się ciągami nie dłuższymi niż 60 znaków i chciałbym zapełnić magazyn danych kilkoma znanymi lub dobrze znanymi małymi fragmentami kodu i równań, ponieważ programowanie i matematyka idzie w parze z tematem mojego oprogramowania. Kod może być w dowolnym języku i równaniach z dowolnej dyscypliny matematyki, o ile ich długość nie przekracza 60 znaków. Podejrzewam, że ludzie zrobią z tego trochę pojebanego mózgu. Na przykład #include<stdio.h> int main(){printf ("Hi World\n");return 0;} Dokładnie 60 znaków! Dziękuję bardzo za twoją mądrość!


title: co robisz, aby dalej się uczyć?

text: Po szkole myślę, że mój proces uczenia się był powolny (jeszcze nie zatrzymał się), więc daj mi kilka rad, które pomogą mi kontynuować naukę. AKTUALIZACJA: Jestem web developerem w PHP. Pracuję w PHP od 2 lat.


title: Dręczy Cię niezdecydowanie – jak wybrać technologie do wykorzystania w projektach?

text: Zawsze fascynowały mnie najnowsze i najlepsze dostępne technologie. W tym roku kończę studia i w ciągu ostatnich kilku lat spędziłem dużo czasu ucząc się nowych języków programowania, frameworków internetowych, dystrybucji Linuksa, IDE itp., starając się znaleźć to, co najlepsze z każdego z nich. Zainstalowałem i bawiłem się z Ubuntu, Gentoo, Debian, Arch Linux, SUSE, VectorLinux, Puppy Linux, Slackware i Fedorą, spędziłem sporo czasu w Vimie i Emacsie oraz bawiłem się z Visual Studio, Eclipse , NetBeans, gedit i kilka innych niejasnych. Bawiłem się różnymi językami - zaczynałem od popularnych języków, takich jak C, Java, Visual Basic, ale zawsze słyszałem, że są "złe" (dla względnych definicji zła). Następnie odkryłem języki skryptowe i mam spore doświadczenie w PHP, Perl, Python i Ruby. Potem usłyszałem, że języki funkcjonalne są tam, gdzie są, więc bawiłem się Scheme, Lisp, Haskell, Erlang i OCaml. Bawiłem się mało znanymi językami, takimi jak Forth i J. Kiedy zajmuję się tworzeniem stron internetowych, poruszam się tam iz powrotem między frameworkami i językami. Czy powinienem używać zwykłego PHP, Ruby on Rails, Django, CakePHP, CodeIgniter, Yii, Kohana, czy też tworzyć własne? Posiadam bardzo szeroką i płytką wiedzę z zakresu informatyki. Jak tylko poznam użyteczną ilość jednej technologii, widzę coś innego błyszczącego i idę za tym. Mój postęp często wygląda tak: „Perl jest lepszy niż PHP, ale czekaj, Python jest lepszy niż Perl. Och, ale teraz widzę, że Ruby ma moc Perla i jest fajniejszy niż Python. trochę Ruby, to jest zbyt skomplikowane. Python jest czystszy. Och, ale wdrożenie Pythona jest zbyt trudne, więc powinienem użyć PHP, jeśli chcę naprawdę tworzyć strony internetowe." I tak dalej i tak dalej. Jakiej technologii powinienem używać do projektów? Czy powinienem po prostu wybrać jeden język/framework/IDE i zapomnieć o innych rzeczach, które są dostępne na jakiś czas? Nie mam aż tak dużo gotowych projektów, bo nigdy nie zostaję z czymś na tyle długo, żeby to skończyć.


title: Jak uzyskać aktualne informacje o technologiach tworzenia stron internetowych?

text: Jestem tutaj zwykłym użytkownikiem, ale powiązanie mojego pseudonimu z moją prawdziwą tożsamością jest banalnie proste, a pytanie, które zamierzam zadać, doprowadziłoby do bardzo nieprzyjemnej rozmowy z moim obecnym pracodawcą, gdyby to zobaczył. Tak więc przepraszam za to konto-sock-marionetka; Obiecuję, że Socky i nie będę głosował na swoje sprawy, a Socky nie będzie robił nic poza głosowaniem nad odpowiedziami na własne pytania. Być może będę miał okazję pracować z kimś, z kim pracowałem w przeszłości. Krótkie, niezwykle zaniżone podsumowanie: Poszło dobrze. Tym razem chce mnie zatrudnić jako partnera do raczkującego przedsięwzięcia internetowego. Mój tytuł zawodowy nie jest zdefiniowany, ale w zasadzie byłbym „tym facetem” pod względem technologicznej strony firmy. Jedną z pierwszych rzeczy, które będę robił, jest określenie bieżących i przyszłych wymagań witryny i określenie najlepszego sposobu ich spełnienia – remont istniejącej witryny? Całkowicie zeskrobać istniejącą witrynę i zastąpić ją czymś w rodzaju Drupala? Miałbym również za zadanie upewnić się, że witryna jest nie tylko przyjemna dla użytkownika, ale także wygląda i działa jak nowoczesna, profesjonalna strona internetowa. Jeden problem: nie mam kwalifikacji. Przynajmniej jeszcze nie. Nie miałem kwalifikacji na ostatni raz, kiedy razem pracowaliśmy, ale nauczyłem się tego, co powinienem wiedzieć i… tak jak powiedziałem. Nieźle poszło. Jednak tym razem byłem administratorem kodu niższego poziomu i wiele kluczowych decyzji zostało już podjętych. Miałem więcej miejsca na błędy i czas na naukę, gdy szedłem. Ta wycieczka, nie tak bardzo. Minęło cholernie dużo czasu, odkąd byłem całkowicie na bieżąco z programowaniem internetowym; na moim obecnym koncercie jest sporo elementów internetowych, ale interfejs sieciowy nie jest głównym biznesem i jest zbudowany na starej technologii. (Technologia to szczerze mówiąc nie jest szczególnie przydatna.) Po prostu nie spędzam dużo czasu bawiąc się nową technologią, kiedy nie jestem w pracy; Generalnie spędzam ten czas na hobby i pasjach, za które nie zarabiam. Ale chcę, żeby tak się stało. I chcę to zrobić dobrze. Więc moje pytanie brzmi: jakich zasobów poleciłbyś użyć, aby być na bieżąco i być na bieżąco z profesjonalnym programowaniem internetowym? Wiem, że muszę wzmocnić moje jQuery-fu; Byłem na to trochę narażony, a jasna cholera ułatwia ciężką pracę. Wiem też, że muszę zapoznać się z Drupalem i innymi systemami zarządzania treścią, aby móc dokładnie ocenić, czy użycie jednego jako podstawy dla strony byłoby dobrym pomysłem, czy stratą czasu. Ale jestem pewien, że istnieją inne technologie, które pomogłyby mi wykonać tę pracę, o której jeszcze nic nie wiem. Jakie są dobre źródła, które pomogą mi dowiedzieć się, czego nie wiem? Strony internetowe, czasopisma, podcasty, cokolwiek. Muszę wymyślić, jak prawidłowo wrócić do gry. To przerażające jak diabli, ale wydaje mi się, że może to być ogromny krok naprzód w mojej karierze. (Zakładając, że to nie jest krok do basenu wypełnionego laserowymi rekinami.) Z góry dziękuję za wszelką pomoc, jaką ktokolwiek może zaoferować w wyleczeniu mojej ignorancji.


title: Bądź na bieżąco z szybkością technologii

text: Przechodzę przez 2 ebooks na ASP.NET MVC i SignalR. **SignalR: Tworzenie aplikacji w czasie rzeczywistym** Wydany w 2013 r. **Przedstawiamy ASP.NET MVC 4 Czwartą edycję** Wydany w 2012 r. Przeglądając te książki i pisząc kod, visual studio powiedziało mi, że część kodu jest przestarzała. Z MVC sekcja dotyczyła bezpieczeństwa i sygnałuR na głównej mapie połączenia. W związku z tym pytaniem Entity Framework właśnie wydała swoją 6. wersję i teraz wszyscy zaczynają korzystać z interfejsu API sieci Web, a nie WCF. To wszystko jest co najmniej onieśmielające. Poza koniecznością poznania wszystkich tych technologii, musimy także co kilka miesięcy być na bieżąco z nowymi wydaniami. W standardowej aplikacji webowej znajduje się ASP.NET /MVC, EF, SQL, jQuery, jQuery Lib(knockoutjs itp.), HTML5 + CSS3, WEB API, konfiguracja środowiska wdrażania. A te technologie zmieniają się tak szybko. Bardzo często spotykam się ze starym kodem, szukając odpowiedzi i uświadamiając sobie, że są konflikty z innymi bibliotekami, poważne obawy dotyczące bezpieczeństwa lub złe praktyki w zakresie utrzymania i testowania. Moje pytanie brzmi. Jak mogę być na bieżąco z tym wszystkim?


title: Jak wspominasz liczne API?

text: Istnieje wiele innych interfejsów API, których muszę użyć oprócz narzędzia testowego Selenium, aby móc uruchomić testy. Nie używam ich tylko przez tydzień, a umysł stracił je wszystkie. Jak można zapamiętać zillions API?


title: Jak mogę szybciej uczyć się bibliotek i innych rzeczy?

text: Jako programista wydaje mi się, że połowę czasu spędzam na zastanawianiu się, jak korzystać z różnych bibliotek/frameworków/narzędzi. Najpierw JavaScript, potem Jquery, potem canvas, potem Backbone itd. itd. Każde narzędzie ma swój własny zestaw nieoczywistych idiosynkrazji, o których musisz wiedzieć. Opanowanie ich zajmuje dużo czasu. Jakieś sugestie, jak przyspieszyć proces nauki?


title: Jak mogę przygotować się na kolejny paradygmat oprogramowania?

text: W całej historii programowania za każdym razem, gdy powstawała nowa technologia, należało do niej sporządzić **aplikację**. _Np. Kiedy pojawił się Android, pojawiły się aplikacje na Androida, dając miliony dolarów przychodów odpowiednim programistom, którzy je stworzyli. (System operacyjny pojawił się w 2008 r.)_ Piękno komputerów polega na tym, że ciągle się zmieniają. Nie można wymyślić nowej innowacji do pisania, ponieważ większość studentów angielskiego uczy się o Szekspirze, podczas gdy studenci CS mają do czynienia z ciągle zmieniającym się programem nauczania. Programiści mają tę przewagę. **Mogą zarobić dużo pieniędzy, jeśli dobrze rozegrają swoje karty.** Więc chcę być przygotowany. Chcę być pierwszy w kolejce do następnej obiecującej innowacji. Wiem, że wiele z nich zawiedzie, ale myślę, że mój instynkt dostrzegania potencjalnego sukcesu jest wysoki. _Ale jak mogę się przygotować?_ Planuję zasymilować kolegów programistów, przyjaciół i deweloperów/wykonawców offshore. Chcę założyć własny start-up ~ na razie jako jednoosobowy właściciel. Nie ma mowy, żebym proponował pomysł dużej firmie. Chcę zdobyć BN i zarejestrować firmę, wierzę, że da to większą **elastyczność**. Poza tym **lepsza praca z innymi umysłami, ponieważ samodzielne projektowanie czegoś bez pomocy to przepis na wypalenie.** Więc moje pytanie – mówiąc bardziej konkretnie, jakie podejście powinienem przyjąć? * Czy powinienem założyć własną firmę programistyczną, która może być pasywna na początku? * Kto powinien mi pomóc? Czy mądrzej jest poprosić wewnętrznych/zewnętrznych programistów, aby pomogli mi w moich pomysłach na nowe paradygmaty? Jestem studentką pierwszego roku CS, mam 18 lat z dobrymi umiejętnościami społecznymi.


title: Jak poradzić sobie z każdą rosnącą/zmieniającą się liczbą frameworków?

text: Zacząłem kodować za pomocą php, mysql, html i javascript w 2002 roku i do licha to wszystko, czego w zasadzie potrzebujesz do stworzenia dowolnej strony internetowej. Z biegiem lat nauczyłem się innych języków, ale to, co mnie zniechęciło, to wszystkie frameworki i JQuery, które pojawiały się co kilka miesięcy, a klienci (jeśli byli freelancerami) lub pracodawcy oczekiwali, że będziesz ekspertem od jakiegoś gówniarza wydanego niedawno. Z tego powodu wyszedłem z programowania, ponieważ nie wiem, czy mogę ciągle wyrzucać całą moją poprzednią wiedzę i zastąpić ją nową modą, która robi dokładnie to samo, ale używa tylko innych nazw funkcji. Brakuje mi znajomości podstawowej wiedzy o PHP i umiejętności kodowania od podstaw i obawiam się, że umiejętność opanowania technologii do końca jest przestarzała. Czy słuszne jest czuć się w ten sposób i czy ktokolwiek z nas może czuć się bezpiecznie w swojej karierze programistycznej w przyszłości?


title: najlepsze praktyki html/css/js

text: > **Możliwy duplikat:** > Co programista powinien wiedzieć przed zbudowaniem publicznej witryny internetowej? Czy są jakieś książki lub zasoby dotyczące najlepszych praktyk w zakresie html/css/js i projektowania stron internetowych? Jest mnóstwo książek, które po prostu uczą podstaw - składni i innych rzeczy, które nie są trudne, ale nie mogę znaleźć przypadków użycia, prawdziwych przykładów, jak profesjonalni projektanci ich używają.


title: Najlepszy sposób na zdobycie pełnej, kompleksowej wiedzy z zakresu projektowania i tworzenia stron internetowych?

text: > **Możliwy duplikat:** > Co każdy programista powinien wiedzieć o tworzeniu stron internetowych? Zakładając, że ktoś chce być profesjonalistą w projektowaniu i tworzeniu stron internetowych, jakich technologii poleciłbyś poznać? W jakiej kolejności należy to zrobić? Jakieś inne sugestie. Uwaga : jestem zainteresowany uzyskaniem informacji o pakiecie szkoleniowym wideo, który zawiera wszystkie wymienione technologie.


title: Najlepszy język programowania do tworzenia stron internetowych

text: Jestem Web Developerem w PHP, a także znam Javascript i trochę CSS, który jest potrzebny do tworzenia stron internetowych. Wykorzystuję framework Symfony do budowy stron internetowych i aplikacji webowych. Jak teraz chcę nauczyć się nowego języka programowania, który jest najlepszy do tworzenia stron internetowych (takich jak Ruby, Python), ponieważ słyszałem o frameworkach, takich jak Rails i Django. Który język będzie najlepszy do tworzenia stron internetowych poza PHP lub podobnym do PHP?


title: Jakie szczegóły techniczne powinien rozważyć programista aplikacji internetowej przed upublicznieniem witryny?

text: Jakie rzeczy powinien rozważyć programista wdrażający szczegóły techniczne aplikacji internetowej przed upublicznieniem witryny? Jeśli Jeff Atwood może zapomnieć o plikach cookie HttpOnly, mapach witryn, _i_ fałszerstwach żądań między witrynami _wszystko w tej samej witrynie_ , o jakiej ważnej rzeczy również mógłbym zapomnieć? Myślę o tym z perspektywy web developera, tak aby ktoś inny tworzył rzeczywisty projekt i treść witryny. Tak więc, chociaż użyteczność i treść mogą być ważniejsze niż platforma, programista ma w tym niewiele do powiedzenia. Musisz się martwić, że Twoja implementacja platformy jest stabilna, dobrze działa, jest bezpieczna i spełnia wszelkie inne cele biznesowe (np. nie kosztuje zbyt wiele, tworzenie trwa zbyt długo i jest równie dobrze oceniane w Google, jak i obsługa treści). Pomyśl o tym z perspektywy programisty, który wykonał trochę pracy dla aplikacji typu intranet w dość zaufanym środowisku i ma zamiar zrobić swój pierwszy strzał i stworzyć potencjalnie popularną witrynę dla całego wielkiego złego World Wide Web. Poza tym szukam czegoś bardziej konkretnego niż tylko niejasna odpowiedź „standardów sieciowych”. Mam na myśli, że HTML, JavaScript i CSS przez HTTP są dość oczywiste, zwłaszcza gdy już określiłem, że jesteś profesjonalnym programistą internetowym. A więc wychodząc poza to, _Jakie_ standardy? W jakich okolicznościach i dlaczego? **Podaj link do specyfikacji standardu.**


title: Czego muszę się nauczyć, aby zostać lepszym programistą internetowym?

text: > **Możliwy duplikat:** > Co każdy programista powinien wiedzieć o tworzeniu stron internetowych? Mam 15 lat. Programuję od 2 lat. Przypuszczam, że jestem dobrym programistą (nie projektantem). Mogę używać PHP (dobre), Css (proste) i JQuery (nie tak źle). Czego jeszcze mogę się nauczyć w związku z tworzeniem stron internetowych (może z programowaniem systemowym)? Dzięki za sugestie...


title: Poprowadź tego programistę-samouka

text: Jednym z głównych żalów w życiu jest to, że nie zrobiłem czegoś z moją introwersją. Z tego powodu nie udało mi się wyjść poza pierwszy rok studiów. Wybrałem ścieżkę, w której nie ma gier wideo i innych zatonięć czasu, wszystko, co mam, to internet, aby ugasić pragnienie poznania tajników tworzenia/projektowania stron internetowych. Chociaż obecnie biorę udział w kursie Web Design Associate w jednym z najlepszych Computer Arts i jest to ostatni miesiąc zajęć. Mimo że wciąż jestem drzewkiem, tak bardzo kocham to pole. Tak więc zasadniczo w szkole uczę się projektowania stron internetowych, podczas gdy w domu uczę się tworzenia stron internetowych. Po pierwsze, powrót na studia wydaje się w tej chwili niemożliwy z powodu pewnych problemów finansowych. Czuję się całkiem swobodnie w CSS i HTML, aw tej chwili zajmuję się PHP/MySQL. **Czy mógłbyś mi podać program do tworzenia stron internetowych do naśladowania.** Czy muszę poznać teorie, które się za tym kryją? I myślę, że wciąż jestem młody (mam 18 lat w momencie pisania). **Czy wybór tej ścieżki jest dobry czy zły?** Cieszę się ze swojej decyzji, ale szczerze mówiąc, **Martwię się o swoją przyszłość i pracę, ponieważ jestem studentem** , nadchodzę z kraju, w którym firmy są sukami, bardzo mnie to zasmuca. Dziękuję Ci. (Moje pytania to pogrubione części. )


title: Młodszy programista - Jak dogłębnie zrozumieć aplikacje internetowe?

text: Obecnie jestem junior developerem w aplikacjach webowych, a konkretnie w technologii ASP.NET MVC. Mój problem polega na tym, że starszy programista C# w firmie nie ma doświadczenia z tą technologią i staram się uczyć bez żadnych wskazówek. Przeszedłem przez wszystkie tutoriale (np. sklep muzyczny), projekty codeplex, a także przeczytałem Pro ASP.NET MVC 4. Jednak większość przykładów dotyczy CRUD i aplikacji e-commerce. Nie rozumiem, jak wstrzykiwanie zależności pasuje do aplikacji internetowych (zdałem sobie sprawę, że służy to nie tylko do ułatwienia testów jednostkowych) lub kiedy powinienem użyć niestandardowego bindera modelu lub jak modelować logikę biznesową, gdy istnieje już baza danych schemat w miejscu. Czytam forum dość często i byłoby bardzo pomocne, gdyby jakiś doświadczony programista dał mi wgląd w to, jak postępować. Czy muszę przeczytać kilka książek, aby zrozumieć ogólną ideę aplikacji internetowych? A jaką aplikację powinienem zacząć budować sam - nie sądzę, żeby przydałoby się tworzenie podobnych przykładów za pomocą samouczków.


title: Aplikacje internetowe

text: > **Możliwy duplikat:** > Co każdy programista powinien wiedzieć o tworzeniu stron internetowych? Od czego zacząć, jeśli chcę zbudować aplikację internetową? Książki, tutoriale, zasoby internetowe. Po szybkim spojrzeniu na sieć widzę, że Html, Css i JavaScript powinny być tematami do nauki. Czy sie zgadzasz? Co poleciłbyś profesjonalnemu programiście C++?


title: Co należy wiedzieć, gdy podchodzimy do tworzenia stron internetowych?

text: Właśnie zacząłem pracować jako początkujący Web Developer. Bardzo dobrze znam PHP, a także podstawowe jQuery. W każdym razie mój szef powiedział mi, że powinienem zbadać i dowiedzieć się o MVC, Memcache, wzorcach projektowych, jak działają serwery Apache i jak je skonfigurować itp. Chcę zapytać w rzeczywistości: czego powinienem się nauczyć dalej? Tworzenie stron internetowych to duży obszar i większość jest taka, że nigdy nie przestanę się uczyć, ale jakich podstaw powinienem się nauczyć? Jakie są podstawy? Obecnie skupiam się na rozwoju po stronie serwera, ale bardzo duża część mnie również chce zostać front-endowym ninja, więc proszę uwzględnij to w swoich komentarzach. Z góry dzięki, bujasz. :)


title: Tworzenie stron internetowych od podstaw v/s web framework

text: Czy ludzie tworzą strony internetowe od zera, gdy nie mają szczególnych wymagań, czy po prostu wybierają istniejący framework webowy, taki jak Drupal, Joomla, WordPress itp. W większości przypadków wymagania są prawie podobne; jeśli jest osobisty, będzie to blog lub galeria obrazów; w przypadku firmowych będą to strony informacyjne, które można aktualizować dynamicznie wraz z sekcją aktualności. I podobnie istnieją inne wymagania, które może spełnić WordPress, Joomla czy Drupal. Czy warto więc tworzyć stronę internetową od podstaw i dlaczego? **Aktualizacja:** aby wyjaśnić więcej, ponieważ otrzymałem komentarz od @Raynos (dzięki za komentarz i pomoc w wyjaśnieniu pytania), pytanie dotyczy: 1. Czy strony internetowe powinny być tworzone i projektowane od podstaw? 2. Czy należy to robić przy użyciu frameworków takich jak Spring, Zend, CakePHP? 3. Czy należy to robić za pomocą CMS-ów, takich jak Joomla, WordPress, Drupal (ludzie na wschodzie używają ich jako frameworków)?


title: Co programista WWW powinien wiedzieć o HTTP?

text: > **Możliwy duplikat:** > Co każdy programista powinien wiedzieć o tworzeniu stron internetowych? Słyszałem na tej stronie pogłoski, że twórcy stron powinni zapoznać się z HTTP. Jakie aspekty HTTP warto znać jako programista i dlaczego? **Aktualizacja** : To _nie_ jest dokładnym duplikatem To nie jest duplikatem "Co każdy programista powinien wiedzieć o tworzeniu stron internetowych?" Pytam konkretnie o _protokół HTTP_. Nie używam protokołu HTTP do ogólnego tworzenia stron internetowych.


title: Jaki jest najlepszy sposób na zachowanie naszych doświadczeń programistycznych?

text: > **Możliwy duplikat:** > Jak wspominasz rzeczy związane z programowaniem? Podczas moich doświadczeń zawodowych zawsze spotykałem się z różnego rodzaju problemami blokującymi z różnymi technologiami. Kiedy przypominam sobie wysiłki, które włożyłem w znalezienie rozwiązań, jestem sfrustrowany i chcę znaleźć sposób, aby wszystko zapamiętać. Generalnie przechowuję wszystkie projekty, które zrobiłem na moim dysku twardym i zwykle używam ich ponownie, gdy napotkam problem, który już napotkałem. Ale to nie jest zbyt wydajne, gdy ponownie otwierasz swój własny kod i mówisz: Kto jest frajerem, który napisał ten kod!? Zastanawiam się nad stworzeniem własnej strony internetowej, na której będę mógł zamieszczać tutoriale/artykuły o napotkanych problemach i ich rozwiązaniach. Dlatego pamiętam o wszystkim i pomagam społeczności. Czy uważasz, że będzie to dobry pomysł, czy tylko strata czasu dotycząca samych forów programistycznych?


title: Początki projektowania jako programista

text: Dopiero zaczynam zajmować się tworzeniem stron internetowych. W tej chwili uczę się Railsów. Mam duże doświadczenie z różnymi językami programowania. Szukałem książek, które pomogą mi zacząć; Chcę się skupić na pisaniu czystego, zgodnego ze standardami HTML i CSS. Czy ktoś zna jakieś nowoczesne, oparte na standardach zasoby, z których mogę korzystać, w szczególności książki? Dziękuję!


title: Jak nauczyć się zostać web developerem?

text: > **Możliwy duplikat:** > Co programista powinien wiedzieć przed zbudowaniem publicznej witryny internetowej? Pracuję w firmach telekomunikacyjnych od ponad 3 lat, a teraz chcę spróbować zostać web developerem. Używam C++ od dawna i jest to mój najbardziej znany język, a platformą jest Unix lub Linux. Ze względu na moje umiejętności programistyczne próbowałem aplikować na kilka stanowisk, takich jak inżynier oprogramowania C/C++, które moim zdaniem wymagają tego rodzaju wiedzy. Ale zawiodłem na wszystkich pozycjach. Większość stanowisk, które naprawdę potrzebowałem, to znajomość języka C innego niż C++. A wszyscy potrzebują solidnej wiedzy na temat struktury danych i algorytmu, w czym nie jestem dobry. Po kilku próbach zdałem sobie sprawę, że jest problem. To, w czym jestem dobry, to coś takiego jak C++, projektowanie zorientowane obiektowo i umiejętność analizy, która jest trochę na wysokim poziomie. Ale pozycje, które zastosowałem, wymagają algorytmu C, który był trochę niski. Czy są więc jakieś pozycje w sieci, które są odpowiednie dla moich umiejętności programistycznych? lub Ile rzeczy muszę się nauczyć, aby zostać programistą internetowym w oparciu o moje umiejętności programowania? Dziękuję.


title: Wprowadzenie do programowania internetowego, ale z doświadczeniem

text: > **Możliwy duplikat:** > Co każdy programista powinien wiedzieć o tworzeniu stron internetowych? Nie wiem od czego zacząć tworzenie stron internetowych. Mam doświadczenie z podstawami HTML i PHP i wypróbowałem trochę CSS. Jak dotąd nie próbowałem Javascript. Czy powinienem skupić się na jednym z nich, czy na czymś innym?


title: Jaki jest najlepszy sposób na zapamiętanie Java API?

text: Zajmuję się Javą od prawie roku i mam trudności z zapamiętaniem API Javy i nazw metod. Jak najlepiej je zapamiętać?


title: Jakie koncepcje/technologie powinien znać programista ASP.NET

text: Jestem w trakcie uzupełniania braków w mojej wiedzy, aby stać się lepszym programistą. Jestem programistą ASP.NET i czasami muszę też robić rzeczy z czystego back-endu. Sporządziłem listę rzeczy, które uważam za konieczne do poznania. Prosimy o uzupełnienie wszelkich luk: 1. WebForms 2. MVC 3. jQuery 4. HTML5 5. WPF 6. WCF 7. Wzorzec repozytorium 8. Wstrzykiwanie zależności (Castle.Windsor) 9. NHibernate 10. Entity Framework 11. Programowanie asynchroniczne 12. SQL. Jak w: hardcore SQL z tymczasowymi tabelami i grupowaniami, zmiennymi i innymi rzeczami. 13. Testy jednostkowe


title: jak wspominasz rzeczy związane z programowaniem?

text: Jak wspominasz rzeczy związane z programowaniem? Czy miałeś wrażenie, że napotkałeś błąd, który masz przed sobą teraz, kilka lat temu i mógłbyś przysiąc, że wtedy znałeś przyczynę, ale teraz o tym zapomniałeś? Czy jakiś czas temu pracowałeś z parsowaniem łańcuchów xsl, ale teraz nie pamiętasz dokładnie, które funkcje łańcuchowe są w ogóle z xsl i musisz zacząć od zera? A może zapomniałeś o jakiejś funkcji z Apache Commons, takiej jak „filtrowanie kolekcji według jakiegoś predykatu”, z której z pewnością korzystałeś w przeszłości. Więc jak to robisz? Próbowałem prowadzić bloga, ale kiedy tworzę aplikacje, nigdy nie znajduję czasu na aktualizowanie bloga lub pisanie o swoich doświadczeniach. Również korzystanie z wiki jest fajną rzeczą, ale potem trudno mi było zachować wyraźną separację między nimi, ponieważ wiele razy musiałem zmienić post na blogu, aby dodać nowe informacje na ten temat. To sprawiło, że pomyślałem, że właściwie powinienem był umieścić ten temat na wiki zamiast na blogu. Czy masz jakieś systemy, dzięki którym pamiętasz o swoim doświadczeniu programistycznym? Jaka jest twoja konfiguracja?


title: kilka pytań dla początkujących na temat tworzenia aplikacji internetowych

text: 1. Mam pakiet hostingowy z Just Host, którego używam do moich blogów Wordpress. Czy to to samo, co posiadanie „serwera internetowego” podczas tworzenia aplikacji internetowych? Rozmawiałem na żywo z pomocą techniczną i powiedzieli, że ma zainstalowany Apache i mogę skonfigurować mysql i python. Mam zamiar zaprogramować swoją aplikację w Pythonie. Czy potrzebuję czegoś innego z innej usługi? 2. Czy muszę skonfigurować „środowisko programistyczne” na moim Macu tylko po to, aby zbudować MVP?. Czytałem, że muszę pobrać MAMP, a to da mi Apache i wirtualny serwer, czy to prawda? Pobrałem, MAMP i Pythona. Moja aplikacja internetowa będzie wymagała bazy danych, ale nie jestem pewien, co w tym celu pobrać. 3. Czy ktoś chce zrecenzować mój pomysł i dać mi wyobrażenie o tym, co muszę zrobić i czy byłoby to możliwe do uzyskania lub realistyczne, że mógłbym to zrobić sam? Moja ekspozycja na społeczność techniczną jest ograniczona (html/css), ale wiem, że mogę osiągnąć swoje cele kilkoma pomocnymi dłońmi. Dowiedziało się, że ludzie nie znają twojego głodu, chyba że poprosisz o talerz... więc panie i panowie mogą mnie nakarmić?


title: Gdzie opanować HTML, CSS i Javascript?

text: > **Możliwy duplikat:** > Co programista powinien wiedzieć przed zbudowaniem publicznej witryny internetowej? Ostatnio zainteresowałem się tworzeniem stron internetowych. Nadal jestem studentem. Nauczyłem się podstaw HTML, CSS i JavaScript. Potem pomyślałem, że powinienem poprawić skrypty po stronie serwera. Więc uczę się Struts2 i radzę sobie tam lepiej. Teraz zdecydowałem, że w końcu powinienem wykorzystać swoje umiejętności. Więc mój przyjaciel i ja postanowiliśmy stworzyć zabawną stronę internetową dla naszej klasy. Ale teraz zdaję sobie sprawę, że chociaż znam skrypty po stronie serwera w dobrym stopniu (nie świetnie, po prostu dobrze, biorąc pod uwagę, że jestem początkującym), nie jestem ani trochę dobry w podstawowych elementach, a mianowicie. HTML, CSS i JavaScript. To znaczy, nie mogę z nim robić fajnych rzeczy. Znam w3schools, ale byłoby wspaniale, gdybyś mógł wskazać bardziej intuicyjne miejsce, w którym mogę nauczyć się robić wszystkie fajne rzeczy w krótkim czasie. Oto niektóre z problemów, z którymi się borykam: 1) Jak zaprojektować podstawowy układ strony? 2) Jak mogę korzystać z zewnętrznych interfejsów API, takich jak wykres Facebooka?


title: Web Developer lub Web Designer

text: > **Możliwy duplikat:** > Co każdy programista powinien wiedzieć o tworzeniu stron internetowych? Zbudowałem ponad 10 prostych stron internetowych przy użyciu frameworka Symfony i Wordpress. Czy to oznacza, że jestem programistą lub projektantem stron internetowych? Założyłem strony w Symfony i napisałem CSS/Javascript/HTML. Musiałem napisać motywy dla Wordpressa i przenieść trochę kodu. Jakiego doświadczenia potrzebuję, aby być programistą stron internetowych, a nie projektantem? Jakie doświadczenie odróżnia mnie od projektanta znającego HTML i jQuery?


title: Co powinien wiedzieć projektant stron internetowych?

text: > **Możliwy duplikat:** > Co każdy programista powinien wiedzieć o tworzeniu stron internetowych? Chcę zostać projektantem stron internetowych. Ostatnie kilka lat spędziłem na ASP.Net MVC. Na czym powinienem się skupić, aby nauczyć się projektowania stron internetowych? Kiedy myślę, że chodzi tylko o HTML, CSS, JavaScript - tak nie jest. Czy ktoś może mi powiedzieć, jak mogę to znieść praktycznie. Piszę HTML już od kilku ostatnich lat, ale nie praktycznie (nie jest dobrze zaprojektowany i nie wygląda lepiej). Czuję, że w projektowaniu stron internetowych jest duży rozdział. Czy ktoś może mi wyjaśnić, jak mogę zacząć się uczyć, to w przyszłości, jeśli ktoś da mi prace, mogę je wykonać w lepszy sposób.


title: Jak zostać ekspertem web-developerem?

text: > **Możliwy duplikat:** > Co każdy programista powinien wiedzieć o tworzeniu stron internetowych? Obecnie jestem Junior PHP Developerem i naprawdę go UWIELBIAM, kocham internet od pierwszego razu, zawsze kochałem mądrze wykonane strony, zawsze zastanawiałem się jak to wszystko działa, zawsze podziwiałem strony z dobrym designem i bogatą funkcjonalnością, wreszcie sam tworzę strony internetowe i czuję się naprawdę świetnie. Moim celem jest zostanie ekspertem w zakresie tworzenia stron internetowych (mających na celu tworzenie stron internetowych dla **małych i średnich firm** , a nie dla systemów **wielkości przedsiębiorstw**), aby mieć świetną pracę na pełen etat, pracować jako freelancer i tworzyć mój własny startup w przyszłości. **Pytanie ogólne:** Co mam zrobić, aby zostać ekspertem, profesjonalnym i wymagającym programistą internetowym? **Bardziej konkretne pytania:** 1). **_Jak wybrać potrzebne języki i technologie?_** Wiem, że każdy web-developer musi znać HTML+CSS+JS+AJAX+JQuery, też robię jakiś projekt, bo mi się podoba i potrzebuję go również na freelance . Ale co z językami backendu? Obecnie wybrałem PHP, ponieważ jest najbardziej poszukiwany w mojej okolicy i większość sieci go używa, ale co stanie się w przyszłości? Powiedzmy, że za 3 lata będę już dobry we frameworkach PHP i PHP, ale co jeśli inne języki staną się najbardziej popularne? Czy przełączam się na nie? Wiem, że dobry programista to nie języki i frameworki, ale umiejętność uczenia się i dążenia do celu, ale nadal uważam, że nauka frameworków dla jakiegoś języka może zająć trochę czasu. Czy się mylę? 2). **_Jakie są ogólnie podstawowe wytyczne, aby zostać ekspertem w zakresie tworzenia stron internetowych?_** Na jakich najważniejszych rzeczach powinienem się skupić? Dziękuję Ci!


title: Czym jest dobre uogólnienie architektury tworzenia stron internetowych?

text: Jestem nowy w tworzeniu stron internetowych. Patrząc na popularne frameworki open-source dla front-endu i back-endu, mam ogólne pojęcie o tym, jak wygląda współczesna konfiguracja sieciowa z pełnym stosem: Baza danych <-> Język back-endu ~ REST API <-> Front -end Uwagi: * Język zaplecza (Python, Ruby, PHP, Java) generuje API, które jest jedyną warstwą między tyłem a frontem. API posiada uwierzytelnianie w celu ochrony prywatnych danych. * Front-end wysyła żądania GET i POST do API. Można użyć struktury MVC, takiej jak Backbone, Angular lub Ember.js. Czy moje zrozumienie jest prawidłowe?


title: Baza dokumentów a relacyjna baza danych: jak wybrać?

text: Jestem facetem od SQL, ale wiem, że istnieją bazy _Nie tylko SQL_ - głównie dokumenty- bazy danych. Podobnie jak w przypadku większości technologii, każda technologia ma swoje zalety i wady. Czytałem kilka artykułów, ale były one zbyt teoretyczne. Chciałbym, aby były to dwa prawdziwe przypadki: 1. kiedy przejście z relacyjnej bazy danych na bazę danych przyniosło poprawę 2. kiedy przejście z bazy danych na relacyjną bazę danych dało poprawę Ulepszenie to każda rzecz, która czyni lepsze programy - mniej rozwoju czas, skalowalność, wydajność, wszystko, co jest związane z programowaniem. Jest zastrzeżenie dla 2. : historie typu „powrót do relacyjnej bazy danych, ponieważ wszyscy wiedzą, że SQL” nie jest dobre


title: Inżynieria odwrotna systemów rezerwacji linii lotniczych

text: Widziałem tutaj ciekawą rozmowę na temat systemów rezerwacji linii lotniczych i usług, które je łączą (takich jak Sabre). Jest to prawie identyczny odpowiednik problemu, który próbowałem rozwiązać i szukam podstawowych komponentów wymaganych do zbudowania usługi takiej jak Sabre (nie, to nie jest konkurencyjna usługa, ale coś, co działa bardzo podobnie). Czyli elementami budowania Sabre byłyby: Dostęp do poszczególnych baz danych (zakładam przez API) Portal, przez który wprowadzane jest wyszukiwanie Pytanie(-a): Czy ma znaczenie, czy bazy danych są ze sobą kompatybilne (tj. wszystko na wyroczni itp.)? Jak duży to projekt? Wydaje się to stosunkowo proste dla kogoś, kto nie jest programistą baz danych, ale całkowicie wiem, że to naiwne. Gdyby moja firma pracowała nad stworzeniem takiej usługi (znowu nie dla foteli lotniczych, ale mechanizm jest bardzo podobny), jakie byłyby pierwsze kroki? Aby oszczędzić wszystkim złośliwych ripost, rozumiem, że osobiście to przerosło moją głowę, próbuję dowiedzieć się, jakich zasobów będę potrzebować, aby zdobyć ludzi, którzy mogliby to zrobić. Nie, nie sądzę, że mogę się uczyć, wiem, że muszę zatrudnić szalonych mądrych ludzi, aby to zrobili. Jest to próba zrozumienia elementów, które muszę wprowadzić, aby zacząć. Naprawdę doceniam wszelką pomoc, jaką ludzie mogą udzielić. PS - dwa linki, które stosunkowo dobrze opisują podstawowe funkcje: System Rezerwacji Linii Lotniczych oraz Komputerowy System Rezerwacji


title: Czy byłoby możliwe stworzenie biblioteki oprogramowania open source, w całości opracowanej i moderowanej przez otwartą społeczność?

text: Nazwij to demokratycznym tworzeniem oprogramowania lub open source na sterydach, jeśli chcesz. Nie mówię tu tylko o możliwości udostępnienia łatki, która może zostać zatwierdzona przez właściciela biblioteki. Pomyśl o tym, jak działa Stack Exchange. Każdy może publikować kod, a dzięki moderacji społeczności jest on czyszczony i ostatecznie poprawny kod trafia do ostatecznej biblioteki. W przypadku skomplikowanych bibliotek prawdopodobnie należałoby stworzyć rozbudowany system, ale dla prostej biblioteki uważam, że jest to już możliwe m.in. w ramach platformy Stack Exchange. **Przykład** Weźmy na przykład bibliotekę metod rozszerzających dla platformy .NET. Każdy idzie własną drogą i implementuje swój własny podzbiór tego, co uważa za ważne, bibliotekę open source czy nie. Ludzie chcą udostępniać swój kod, ale nie ma do tego odpowiedniej platformy. extensionmethod.net jest wynikiem odpowiedzi na to wezwanie do metod rozszerzających, ale framework beznadziejnie zawodzi; nie ma żadnego porządku ani struktury. Nie wiesz, czy pomysł jest dobry, dopóki go nie wypróbujesz, więc postanowiłem stworzyć propozycję metod rozszerzających na Area51. Wierzę, że przy odpowiednim umiarze witryna może być czymś więcej niż witryną z pytaniami i odpowiedziami i że można z niej wyodrębnić rzeczywistą bibliotekę (lub jej podzbiory). Zachęcamy do wyrażenia opinii na temat tego konkretnego pomysłu na jego stronie propozycji na area51, ale ma to być tylko przykład. To pytanie ma na celu znalezienie odpowiedzi na ogólną ideę stworzenia biblioteki oprogramowania open source moderowanej przez otwartą społeczność. **Pytania** 1. Czy to możliwe? Jakie byłyby główne problemy takiego podejścia? 2. Czy coś takiego próbowano już wcześniej? 3. Czy istnieją platformy lepiej do tego przystosowane?


title: Jak napisać konstruktory, które mogą nie poprawnie tworzyć instancji obiektu?

text: Czasami trzeba napisać konstruktor, który może zawieść. Na przykład, powiedzmy, że chcę utworzyć wystąpienie obiektu ze ścieżką do pliku, coś takiego jak obj = new Object("/home/user/foo_file") Dopóki ścieżka wskazuje odpowiedni plik, wszystko jest w porządku. Ale jeśli ciąg nie jest poprawną ścieżką, rzeczy powinny się zepsuć. Ale jak? Możesz: 1. zgłosić wyjątek 2. zwrócić obiekt null (jeśli twój język programowania pozwala konstruktorom na zwracanie wartości) 3. zwrócić poprawny obiekt, ale z flagą wskazującą, że jego ścieżka nie została ustawiona poprawnie (ugh) 4. inne? Zakładam, że „najlepsze praktyki” różnych języków programowania inaczej to zaimplementowałyby. Na przykład myślę, że ObjC woli (2). Ale (2) byłoby niemożliwe do zaimplementowania w C++, gdzie konstruktory muszą mieć void jako typ zwracany. W takim przypadku przyjmuję, że (1) jest używany. Czy możesz pokazać, w jaki sposób poradzisz sobie z tym problemem, i wyjaśnić dlaczego?


title: Opcje szyfrowania lokalnych baz danych po stronie klienta

text: Mój scenariusz wygląda następująco: * Aplikacja webowa, uruchamiana z przeglądarki, przeznaczona na urządzenia mobilne. * Używa magazynu WebSQL, który może zawierać poufne dane. * Wykorzystuje pamięć podręczną aplikacji, aby umożliwić korzystanie w trybie offline, gdy nie ma łączności. * Może łączyć się z interfejsem API, z którego można pobrać jeszcze bardziej wrażliwe dane. Uwierzytelnianie jest obsługiwane za pomocą uwierzytelniania BASIC, a niezaszyfrowane dane są przesyłane przez sieć, ponieważ aplikacja będzie uzyskiwać dostęp do interfejsu API w następujących środowiskach/scenariuszach: * W prywatnej, zabezpieczonej, lokalnej sieci Wi-Fi. * Przez publiczny Internet, przez połączenie VPN. * Przez publiczny Internet za pośrednictwem połączenia HTTPS. Jak dotąd, w oparciu o moją ograniczoną wiedzę, bezpieczeństwo wrażliwych danych przesyłanych przez sieć jest objęte ochroną. Jednak dane „w spoczynku” w lokalnym magazynie WebSQL i sformatowane na stronach HTML aplikacji internetowej nie są bezpieczne. Obecnie problemem jest to, czy urządzenie mobilne zawiera wrażliwe dane i zostanie zgubione lub skradzione, w jaki sposób zminimalizować ryzyko uzyskania dostępu do wrażliwych danych. Ponieważ aplikacja musi być zdatna do użytku bez interakcji z serwerem, wszelkie szyfrowanie programowe będzie zawarte w samym kliencie. Oznacza to, że prawdopodobnie próba zaszyfrowania bazy danych WebSQL będzie bezcelowa, ponieważ wprawny intruz może ominąć szyfrowanie sprzętowe, prawdopodobnie może również określić logikę szyfrowania/odszyfrowywania? Proponowanym rozwiązaniem szyfrowania danych w spoczynku jest wykorzystanie wbudowanego szyfrowania sprzętowego, które jest częścią urządzeń iOS i Android, wymagające od użytkowników wprowadzenia hasła na ekranie blokady. Istnieją również powiązane funkcje „zdalnego czyszczenia”, których można użyć. **P: Jak „bezpieczne” jest proponowane rozwiązanie? Jeśli wbudowane szyfrowanie sprzętowe nie wystarcza, jakie są najlepsze strategie wdrażania szyfrowania danych WebSQL po stronie klienta bez konieczności interakcji z serwerem?** Czy wdrożenie rozwiązania do szyfrowania/odszyfrowywania danych opartego na oprogramowaniu, da tylko marginalną korzyść w zakresie bezpieczeństwa, ponieważ kod szyfrowania/odszyfrowywania może być dostępny i poddany inżynierii wstecznej? Czy to tylko ja, czy główna korzyść z tego tylko w celach marketingowych, czyli możliwość „powiedzieć”, że jest zaszyfrowana? Interesujące linki: http://security.stackexchange.com/questions/10529/are-there-actually-any- Advantage-to-android-full-disk-encryption Również... > Podstawowe mechanizmy przechowywania mogą się różnić w zależności od jednego agenta użytkownika do następnego. Innymi słowy, każde uwierzytelnienie, którego wymaga aplikacja, może zostać > pominięte przez użytkownika z lokalnymi uprawnieniami do komputera, na którym przechowywane są dane. > Dlatego nie zaleca się przechowywania poufnych informacji w > lokalnej pamięci masowej. >> https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet#Client- > side_databases Czy to oznacza, że jedyną bezpieczną opcją jest stworzenie aplikacji hybrydowej? Np. za pomocą Phonegap. Czy jest to o wiele bardziej bezpieczne, czy można je po prostu odtworzyć, aby wyświetlić JavaScript, który i tak szyfruje/odszyfrowuje?


title: Priorytet indeksów tablic

text: Czytałem wykład na temat tablic dla Fortrana 90 i natknąłem się na to zdanie: „Fortran zawsze przechowuje według kolumn – pierwszy indeks zmienia się szybciej niż drugi i tak dalej”. Co autor ma na myśli?


title: Zasada odwrócenia zależności: zrozumienie, w jaki sposób zarówno komponenty niskiego poziomu, jak i komponenty wysokiego poziomu zależą od abstrakcji

text: Uczę się o zasadzie odwrócenia zależności. Stwierdza, że: > Moduły wysokiego poziomu nie powinny zależeć od modułów niskiego poziomu. Oba powinny > zależeć od abstrakcji. Przez chwilę próbowałem zrozumieć, co to znaczy, że zarówno komponenty wysokopoziomowe, jak i niskopoziomowe opierają się na abstrakcji i są _od nich zależne_. _Zakładam, że oba powinny w jakiś sposób zależeć od **tej samej abstrakcji**. Proszę mnie poprawić, jeśli to jest złe._ Doszedłem do pewnego wniosku, co to oznacza. Potwierdź, czy to prawda. ![tutaj wpisz opis obrazu](http://i.stack.imgur.com/p3IRQ.png) „**Komponenty wysokiego poziomu** są zależne od abstrakcji” – Znaczenie: Komponenty wysokiego poziomu **rozmawiaj z interfejs do komunikacji z komponentami niskiego poziomu** zamiast bezpośredniego komunikowania się z konkretnymi komponentami niskiego poziomu. Komponenty niskiego poziomu implementują ten interfejs. „ **Komponenty niskiego poziomu** zależą od abstrakcji” – Znaczenie: Komponenty niskiego poziomu są **zdefiniowane i zaprojektowane zgodnie z interfejsem.** Zostały zaprojektowane tak, aby **pasowały do interfejsu**. Są one zależne od interfejsu w sposób, w jaki **interfejs definiuje sposób ich projektowania** (często klasy niskopoziomowe implementują ten interfejs). W ten sposób zarówno komponenty wysokiego poziomu, jak i komponenty niskiego poziomu są „zależne od abstrakcji”, ale na różne sposoby. Czy to dobre zrozumienie?


title: Czy autor kodu na licencji CC-NC-ND może go używać w komercyjnym oprogramowaniu o zamkniętym kodzie źródłowym?

text: Pracuję nad projektem, w którym muszę otworzyć część kodu w celu ułatwienia rozbudowy przez użytkownika końcowego. To, czego chcę, to zrobić moduł npm, który będzie eksponował część mojego kodu, aby moi użytkownicy mogli budować rozszerzenia produktu (w JavaScript), ale chcę mieć gwarancję, że ten kod nie będzie używany do komercyjnego lub innego rozwoju pracy, oprócz rozszerzeń dla mojego produktu. Uznałem, że licencja **Creative Commons Attribution NonCommercial NoDerivs** jest odpowiednia. **Mój problem:** Czy **ja** jako autor tego kodu mogę użyć go w komercyjnej aplikacji o zamkniętym kodzie źródłowym? **Zastrzeżenie:** Wiem, że to pytanie prawne, ale proszę, powiedz, co myślisz, nikt nie pociąga Cię za to do odpowiedzialności. Dziękuję.


title: Czy korzystasz z Cobertury w przedsiębiorstwie?

text: Cobertura to narzędzie raportujące do pokrycia kodu testów jednostkowych. Licencja na Cobertura jest skomplikowana: zadania Anta są objęte Apache 1.1 (wystarczająco łatwe), ale oprzyrządowany kod bajtowy wymaga licencji GPL. Szczegóły są tutaj: http://cobertura.sourceforge.net/license.html W klasycznym CYA, konkluzja licencji stwierdza: „to zależy od twojej interpretacji licencji”. Jak zinterpretowałeś licencję? Czy korzystasz z Cobertury przy tworzeniu oprogramowania komercyjnego dla przedsiębiorstwa? tj. po prostu używaj go do raportowania swoich testów JUnit. **Nie** pytam o łączenie Cobertury z Waszym produktem.


title: Jak stworzyć program obsługujący klastry?

text: W klastrach komputerowych istnieją dwie opcje: przekierowanie zadań i dzielenie zadań. Przekierowanie zadań wydaje się dość łatwe, wystarczy, że master wysyła małe wywołania do innych węzłów w klastrze w celu przetworzenia (np. klastry serwerów WWW (chyba)). Podział zadań wydaje się jednak szalenie bardziej złożony. Ponieważ nie sądzę, że możesz mieć dwa wątki tego samego programu działające na różnych maszynach, co oznacza, że musisz podzielić pracę. Jak jednak można podzielić pracę? Widzę pewne rzeczy, takie jak renderowanie lub kodowanie wideo tylko dlatego, że możesz powiedzieć każdemu węzłowi, aby pracował nad inną częścią wideo, ale kiedy chcesz zrobić takie rzeczy, jak obliczenie 5 bilionowej cyfry tortu, jak byś to podzielić? Lub nawet w nauce, gdzie musisz symulować pogodę lub inne zadania wymagające dużej ilości zasobów? Krótko mówiąc, jak podzielić zadania, które tak naprawdę nie są przeznaczone do dzielenia?


title: Czy kandydaci grający w Portal to dobra taktyka podczas rozmowy kwalifikacyjnej?

text: Czytałem bloga, który mówił coś w stylu: > Niektórzy kandydaci mogą być niedoświadczeni, ale mają potencjał, by być świetnymi. Dobrym sposobem na sprawdzenie > tego jest umożliwienie im rozwiązywania łamigłówek (nie związanych z programowaniem) w celu sprawdzenia > umiejętności rozwiązywania problemów. Zastanawiam się, czy rozwiązywanie zagadek w grze Portal może być na to dobrym sposobem. Przede wszystkim jest to dobra zabawa, kandydaci będą zadowoleni z rozmowy kwalifikacyjnej i będą bardziej entuzjastycznie nastawieni do pracy. Jednak wielu programistów zna tę grę i działałaby tylko wtedy, gdyby nigdy wcześniej w nią nie grali. Poza tym grając w nią po raz pierwszy, nie było to dla mnie zbyt trudne, ale uwielbiam też rozwiązywać łamigłówki. Więc może nie jest wystarczająco trudne, aby naprawdę przetestować umiejętności rozwiązywania problemów. Jeśli jest to zły przykład, jakie są dobre przykłady (problemów do rozwiązania)?


title: gdzie przydzielić miejsce na nową zmienną środowiskową?

text: w systemie UNIX chcę modyfikować zmienne środowiskowe. jeśli rozmiar nowej wartości jest większy niż starej, miejsce na nową zmienną jest przydzielane przez malloc. jednak czy pamięć dla zmiennych środowiskowych jest nad stosem? (nie pamięć sterty) gdzie przydzielić miejsce na nową zmienną?


title: Jaki jest najlepszy sposób tworzenia i kierowania architekturą korporacyjną?

text: Wikipedia definiuje architekturę korporacyjną w następujący sposób: > Architektura korporacyjna (EA) to rygorystyczny opis struktury > przedsiębiorstwa, jego dekompozycji na podsystemy, relacji > między podsystemami, relacji ze środowiskiem zewnętrznym, używanej terminologii , oraz zasady przewodnie dotyczące projektowania i ewolucji > przedsiębiorstwa. Opis ten jest wyczerpujący i obejmuje cele > przedsiębiorstwa, funkcje biznesowe, procesy biznesowe, role, struktury > organizacyjne, informacje biznesowe, aplikacje i systemy > komputerowe. Praktycy EA nazywają siebie „architektami przedsiębiorstw”. > > Architekt korporacyjny jest osobą odpowiedzialną za opracowanie > architektury korporacyjnej i często jest proszony o wyciągnięcie z niej wniosków. Tworząc architekturę korporacyjną, architekci dostarczają > narzędzia do identyfikowania możliwości usprawnienia przedsiębiorstwa w sposób, który > skuteczniej i wydajniej realizuje swój cel. Wraz z rozwojem firmy architektura korporacyjna ma tendencję do pękania (jeśli w ogóle istniała) i zamieniania się w wielką kulę błota. Niestety w tym momencie żadna indywidualna grupa programistyczna w firmie zwykle nie ma odpowiedniej struktury ani pozycji, aby stworzyć architekturę korporacyjną, i zazwyczaj nie ma zachęty dla jakiejkolwiek konkretnej grupy, aby to zrobić, ponieważ koncentruje się na swoich problemach biznesowych. Z drugiej strony, utworzenie oddzielnej „grupy architektury”, która nie jest ściśle powiązana z priorytetami biznesowymi i dostarcza z góry, czym architektura powinna być, nie jest również wystarczające, ponieważ praca, którą wykonują, zwykle pada w uszach osób, które ją wykonują. „prawdziwa praca”. Jaki jest zatem najlepszy sposób tworzenia i kierowania architekturą korporacyjną?


title: Czy jakieś biblioteki js będą aktualizować api za pomocą html5 pod maską?

text: Tak więc w specyfikacjach HTML5/css3 jest wiele fajnych rzeczy, które powinny zastąpić wiele rzeczy, które tradycyjnie robiono za pomocą javascript. Czy ktoś wie, czy któraś z głównych bibliotek js (jquery, mootools, extjs, itp.) lub nowsze biblioteki js będą implementować swoje biblioteki w taki sposób, że będzie używana implementacja html5; ale domyślnie używa istniejącej implementacji (html4/pre-CSS3/js), gdy starsze przeglądarki (IE8/FF3.5 i wcześniejsze) są używane w celu zapewnienia kompatybilności wstecznej? Zasadniczo staram się dowiedzieć, czy istnieje trend w tym kierunku; lub jeśli jest to rodzaj punktu resetu, w którym pisane są zupełnie nowe biblioteki, w przeciwieństwie do mashupów.


title: Czy kiedykolwiek napisałeś coś, co uczyniło Cię bardziej wydajnym (lub chciałeś)?

text: Czasami chcemy być bardziej wydajni i produktywni, co napisałeś, aby to osiągnąć?


title: Projekt Open Source, aby dowiedzieć się o inżynierii systemów

text: Jestem studentem inżynierii i chcę dowiedzieć się więcej o programowaniu systemów. Chciałem poznać różne projekty open source, które mam jako opcje do uczenia się o tym samym. Linux Kernel Project jest bardzo stabilny i ma bardzo dużą bazę kodu. Chciałem wiedzieć o projektach, które nie zajęłyby dużo czasu, aby się uruchomić i zacząć wnosić wkład. Dziękuję


title: Zarządzanie oczekiwaniami

text: Jestem na ostatnim roku studiów. Jestem stażystą w firmie wartej 120 milionów dolarów rocznie. Jestem odpowiedzialny za utrzymanie trzech stron internetowych, w zasadzie dbam o marketingową bazę danych oraz piszę i wspieram własne oprogramowanie. Mam dość solidną rezerwację. Moim problemem jest to, że wyższe kierownictwo lubi poważnie nadużywać mnie w każdy możliwy sposób. Na przykład wiceprezes firmy powiedział jednemu z naszych większych klientów, że mamy aplikację mobilną z wieloma referencjami, gotową do pokazania im na spotkaniu za tydzień. Nawet nie zacząłem czegoś takiego, ani nigdy w życiu nie napisałem aplikacji mobilnej. To był dość prosty projekt, ale i tak musiałem się zabić, aby otrzymać coś w tym czasie, oprócz moich regularnych obowiązków. To miecz obosieczny, gdybym nie dostał aplikacji, wyglądałby na mnie źle. Jednak wykonanie tego powoduje, że wiceprezes myśli „dobrze, jeśli to jest to, co możesz zrobić w ciągu tygodnia…” Wyższe kierownictwo nie ma pojęcia o pracy, jaką wykonuje się w projektach IT. Wydaje się, że myślą, że to magia. Poskarżyłem się kilku osobom na swoją sytuację i jedyne, co kiedykolwiek słyszę, to „Witamy w _nazwa naszej firmy_”. Po prostu odszedłbym, ale to świetna praca pod wieloma względami w rozwijającej się firmie. Niezłe miejsce, kiedy mam kończyć szkołę. W każdym razie, moje pytanie brzmi: jako stażysta (niski człowiek na totemie) jak mam sprawić, by kierownictwo zrozumiało, co dzieje się w moim dniu pracy i co jest rozsądne do osiągnięcia? Jak sprawić, by nie angażowali mnie w projekty bez przedyskutowania tego ze mną? Nie wiem, co powiedzieć ani jak to powiedzieć, aby spojrzeć im na to z odpowiedniej perspektywy, nie brzmiąc, jakbym jęczał lub był niezdolny. Ma sens?


title: Kiedy pola obiektów biznesowych nie powinny dokładnie odzwierciedlać kolumn bazy danych

text: Główną zaletą adnotacji Hibernate jest fakt, że proste POJO (przez większość czasu nazywane również Business Object) może stać się trwałe dzięki adnotacjom Hibernate (a właściwie JPA). W scenariuszu, w którym nasz koncepcyjny model domeny (obiekty biznesowe używane przez klientów) nie odzwierciedla dokładnie modelu fizycznego (bazy danych), jak sobie z tym poradzić? Czy należy utworzyć „drugi” model, który reprezentuje „prawdziwe” obiekty biznesowe używane przez klientów ORAZ „obiekt przechowywania danych” zawierający adnotacje mapujące Hibernate? Oczywiście dzięki temu rozwiązaniu DAO będą odpowiedzialne za konwersję każdego BO do Data Object i odwrotnie.


title: Powszechna praktyka dotycząca porzucania oprogramowania w SVN

text: Mam ogólne repozytorium małych narzędzi (które w tamtym czasie były uważane za zbyt małe, aby uzasadnić własne repozytorium. „Może to kolejny problem sam w sobie), z których niektóre są przestarzałe i prawdopodobnie nigdy więcej nie będą służyć. Ale jedna zasada, w której pracuję, to nigdy niczego nie wyrzucać. Usunięcie z SVN oznacza, że tak naprawdę nie jest usuwane, jest gdzieś w historii, ale nadal może być niebezpieczne w przypadku, gdy będziesz musiał ponownie znaleźć tę starą rzecz. Jaka byłaby najlepsza strategia, aby zachować przestarzałe przedmioty, ale jednocześnie nie przeszkadzać?


title: migracja produktu i zespołu z wyścigu startupów do rozwoju jakości

text: > **Możliwy duplikat:** > Proste sposoby na poprawę jakości wydania w środowisku RAD To jest rok 3 i produkt sprzedaje się wystarczająco dobrze. Teraz musimy wymusić dobre praktyki tworzenia oprogramowania. Celem jest monitorowanie nadchodzących raportów o błędach i ich redukcja, umożliwienie niekończących się funkcji i przygotowanie do skalowania 10x. Wyrażenia „rozwój oparty na testach” i „ciągła integracja” nie są nawet rozumiane przez zespół, ponieważ wszystkie brały udział w pierwszym dwuletnim wyścigu produktowym. Wielkość zespołu technicznego to 5. Pytanie brzmi: 1. jak sprzedać/przekonać zespół i kierownictwo do TDD/testów jednostkowych/standardów kodowania/dokumentacji - za pomocą ekonomii. 2. wyszkol zespół, aby robił coś więcej niż tylko kodowanie funkcji i zaczął pisać jednostki testowe – co wygląda na więcej pracy, oznacza więcej czasu! 3. jak zaplanować tworzenie jednostek dla całego kodu produkcji zaległości?


title: Darmowe pobieranie MSDN w trybie offline?

text: Szukałem dokumentacji MSDN i zobaczyłem, że jest ona dostępna online za darmo. Wygląda na to, że mają sposób na pobranie go z sieci, ale nie byłem w stanie dowiedzieć się dokładnie, jak to zrobić. Czy w przypadku zawartości offline musisz mieć zainstalowany program Visual Studio, a jeśli tak, czy wersja ekspresowa będzie działać w tym przypadku? Czy możesz samodzielnie pobrać i uruchomić pliki pomocy MSDN?


title: Jak bezpiecznie uruchamiać losowe kody binarne?

text: Dobra, więc szukam sposobu na bezpieczne uruchomienie losowo generowanego kodu binarnego. Muszę też mieć możliwość dekompilacji kodu. Wszelkie pomysły i wszystkie języki programowania są mile widziane. BTW to najczęściej kod binarny; kod bajtowy lub kod źródłowy nie będzie działać. To jest projekt badawczy, więc nie mogę dodawać zmiennych.


title: Znajdowanie obiektu na nieskończonej linii

text: Pytanie: Istnieje nieskończona linia. Stoisz w określonym miejscu, możesz przesunąć się o 1 krok do przodu lub 1 krok do tyłu. Musisz szukać obiektu w tej nieskończonej linii. Twój obiekt może być w dowolnym kierunku. Podaj optymalne rozwiązanie Moje podejście: Idź 1 krok do przodu, 2 kroki do tyłu Idź 2 kroki do przodu, 4 kroki do tyłu itd. Złożoność: Powiedzmy, że wymagany obiekt znajduje się w punkcie n. Całkowita liczba kroków: 3 + 6 + 9 + .... n = 3 (1 + 2 + 3 ... n) = O(n^2) Czy istnieje sposób na poprawę wydajności?


title: Jakie są systemy kontroli wersji oparte na innych koncepcjach niż Git, Mercurial itp.?

text: Większość używanych przeze mnie systemów kontroli wersji ma wiele podobnych funkcjonalności dla plików z kodem źródłowym: pracują nad zawartością tekstową, porównują przy użyciu znanych algorytmów diff, zmiany zawierają usunięte i wstawione wiersze tekstu, cały przepływ pracy oparty jest na jakaś forma commitów, branchy i łączenie oddziałów. Kilka dni temu znalazłem i zacząłem bawić się Darcs, systemem kontroli wersji stworzonym przez społeczność Haskell w oparciu o teorię Patch. Zastanawiam się, czy istnieją inne, bardziej ezoteryczne systemy kontroli wersji oparte na innych koncepcjach (np. różnego rodzaju zatwierdzenia, praca nad strukturą kodu itp.)


title: Prosta metoda uwierzytelniania danych wprowadzonych przez człowieka do formularza w celu przekazania za pośrednictwem poczty e-mail do strony trzeciej

text: Założyłem stronę internetową reklamującą konkretne przyjęcie urodzinowe. Prosta strona html obsługiwana przez apache2 na serwerze ubuntu 12.04. Mam na stronie link do skryptu cgi-Python, który prosi żądającego o przesłanie wartości tekstowych, które zostaną sformatowane i przekazane w wiadomości e-mail do chłopca. Jaki jest prosty sposób na potwierdzenie, że człowiek wypełnia formularz, aby uniknąć otrzymywania spamu przez urodzinowego chłopca. Używam standardowego CGI, ponieważ nie spodziewam się przeciążenia współbieżnych żądań. Jestem świadomy takich rzeczy jak reCaptcha, ale szukam kanonicznych strategii szybkiego i brudnego uwierzytelniania. Nie płacę za to, a strona będzie działać tylko przez 9 dni, więc nie chcę poświęcać czasu na rozwiązanie bardziej solidne niż to, czego faktycznie potrzebuję. Czy wystarczyłoby zadać pytanie, na które można na nie odpowiedzieć? Jeśli tak, to mogę uciec z rozwijanym polem z odpowiedziami do wyboru. Chcę szybko i brudno, ale nie chcę też skończyć z dużą ilością spamu, ponieważ nie doceniłem inteligencji botów spamujących.


title: Najlepsze praktyki dotyczące zwrotu json w aplikacji REST?

text: Zaczynam teraz od aplikacji REST (używając Laravel 4.2) i Mobile (Android, iOS, SP, itp.). Początkowo sprawdzam, czy żądanie jest ajax/json, a następnie zwracam odpowiedź json. Ale ten warunek jest w normalnej akcji (HTTP), więc: **jeśli ajax/json** zwróć json, **else** zwróć widok/szablon/układ Czy jest to poprawne, aby zrobić to w tej samej akcji, czy najlepszą praktyką jest stworzenie do tego innego kontrolera? Na przykład: * PostsController * PostsMobileController Lub * PostsController * Mobile\PostsController (lub Json\Controller) - _używanie przestrzeni nazw_


title: Czy „bezpieczne” jest oczekiwanie, że myClasses nie będą wywoływać tylko metod zakresu pakietu z innych metod zakresu pakietu?

text: Pytania mówią wszystko, ale szybki przegląd sytuacji. Tworzę model, który zawiera klasy (wszystkie dziedziczące myObject), które mają dużą ilość wzajemnych połączeń. Chcę, aby kontroler mógł tworzyć dowolne z tych obiektów w dowolnym momencie, bez modyfikowania Modelu. Tylko jawne wywołanie modelu w celu „AddToModel” spowoduje „zainstalowanie” obiektu w modelu (w tym zaktualizowanie wszystkich połączonych obiektów). myObjects użyje wzorca fabrycznego, jeśli użytkownik spróbuje stworzyć coś już reprezentowanego w modelu, zostanie zwrócony już istniejący obiekt w modelu zamiast konstruowania nowego. Aby pomóc w enkapsulacji, chcę, aby wszystkie moje obiekty były efektywnie niezmienne dla kontrolera, bez względu na to, co robi z obiektem, nie może zmienić Modelu bez wywołania funkcji dodawania/usuwania Modelu. Model nadal musi mieć możliwość zmiany stanu myObject; więc umieściłbym wszystkie obiekty w pakiecie Model. Każdy obiekt będzie miał wtedy metody zakresu pakietu do aktualizacji stanu, w tym metody dodawania/usuwania, które instalują je w modelu i aktualizują połączone obiekty. Zasadniczo metody zakresu pakietu mogą zmienić stan modelu, a public nie. Obawiam się, że wszystko się zepsuje, jeśli którykolwiek z myObjects wywoła jedną z metod zakresu pakietu z metody publicznej; mieszanie się z moim stanem bez wyraźnych wezwań do Modela. Piszę to wszystko, żebym mógł dotrzymać umowy, że "tylko metody pakietowe mogą wywoływać inne metody pakietowe" Ale co, jeśli ktoś przyjdzie później i spróbuje wywołać "addToModel" od konstruktora, bo nie przeczytał moich komentarzy i nie zdajesz sobie sprawy, że to zrywa zakładaną umowę? Czy „bezpieczne” jest oczekiwanie, że inni będą czytać komentarze i przestrzegać tak dorozumianej umowy, gdy bawią się „moim” modelem? Czy mogę to wymusić za pomocą jakiegoś wzorca (najlepiej bez zbytniej abstrakcji/interfejsów, ponieważ może to zmylić niektórych innych programistów). ps, używam Javy, jeśli to pomaga. Myślę, że mógłbym nawet wymusić to za pomocą interfejsu API bezpieczeństwa, chociaż może to po prostu okazać się bardziej mylące/skomplikowane, ponieważ spowodowałoby to niejasny wyjątek w czasie wykonywania.


title: Pisanie aplikacji desktopowej dla programisty z poziomu PHP

text: Mam klienta, który chce mieć narzędzie, dzięki któremu będzie mógł przesyłać swoje produkty, wprowadzać zamówienia i śledzić dane klienta. Istnieje wiele wysoce spersonalizowanych próśb, dlatego chce wykonać niestandardowe narzędzie. Nie przejmuje się zbytnio projektowaniem interfejsu - musi on po prostu być użyteczny i zapewniać dostęp do bazy danych. Bazę danych zaprojektowałem już. Nie mam doświadczenia z aplikacjami desktopowymi i zazwyczaj piszę aplikacje internetowe w PHP z frameworkiem Yii. Ale hosting tego na serwerze wydaje się przesadą. Mam też doświadczenie .net sprzed kilku lat. Jakie byłyby najlepsze opcje napisania tego jako aplikacji komputerowej?


title: Czy typowa korporacyjna zapora sieciowa blokuje aplet Java działający w następujący sposób?

text: Zastanawiam się nad stworzeniem programu podobnego do proxy do przekazywania portów ze zdalnego komputera na lokalny komputer (na przykład SSH). Załóżmy, że zarówno lokalne, jak i zdalne komputery działają za typowymi zaporami sieciowymi (tj. zaporą sieciową routera konsumenckiego, zaporą systemu Windows lub zaporą korporacyjną). Program będzie programem Java, który użytkownik będzie uruchamiał zarówno na zdalnym, jak i lokalnym komputerze. Klient zdalny będzie okresowo sondować serwer centralny, aby określić, czy istnieją oczekujące połączenia klientów. Sesję można zainicjować w następujący sposób: 1. Klient lokalny kontaktuje się z serwerem centralnym i żąda bieżących szczegółów połączenia dla określonego klienta zdalnego. 2. Serwer centralny odpowiada ostatnim otrzymanym adresem IP i portem serwera zdalnego. 3. Następnym razem, gdy zdalny serwer odpytuje serwer centralny, zwracany jest adres IP i port klienta. Serwer zdalny inicjuje połączenie z klientem lokalnym przy użyciu adresu IP i portu zwróconego przez serwer centralny i nasłuchuje odpowiedzi na losowym porcie. Serwer zdalny przekaże wartość portu, na którym nasłuchuje, do serwera centralnego. 4. Przejdź do 1, jeśli klient nie może połączyć się z serwerem. Cała komunikacja z serwerem centralnym będzie odbywać się przez HTTP/HTTPS na portach 80 i 443. Czy to zadziała, czy też typowa zapora sieciowa zablokuje interakcje.


title: Jaki jest normalny stosunek „funkcjonalnych linii kodu” do „testowych linii kodu”?

text: Jestem całkiem nowy w podejściu TDD i moje pierwsze eksperymenty mówią, że napisanie 1 linijki kodu funkcjonalnego oznacza napisanie około 2-3 linijek kodu testowego. Tak więc, na wypadek gdybym miał napisać 1000 LOC, cała baza kodu, w tym testy, będzie wynosić około ~3500 LOC. Czy to uważane za normalne? Jaki jest stosunek w kodzie, który piszesz?


title: Testy jednostkowe: o ile więcej kodu?

text: Jestem całkiem nowy w testowaniu jednostkowym. W szkole zawsze było "hej, działa, dalej!" Ale zacząłem pisać zawodowo i nawet w pracy to w zasadzie mantra. Jednak zacząłem dostrzegać ważność testów jednostkowych i TDD. Zdałem sobie sprawę, że kiedy piszę może 20-wierszowy fragment kodu, zwykle piszę 100-250 linijek kodu testującego te linijki kodu. Czy chodzi o średnią? Czy istnieją lepsze sprawdzone metody testowania jednostkowego, o których nie wiem? W każdym razie pomyślałem, że to ciekawa obserwacja i zastanawiałem się, ile średnio więcej kodu piszesz podczas pisania testów jednostkowych?


title: Dlaczego musimy używać wyłącznika break in

text: Kto zdecydował i na podstawie jakich koncepcji, że konstrukcja `switch` (w wielu językach) musi być taka jaka jest? Dlaczego musimy używać `break` w każdej instrukcji? Dlaczego musimy napisać coś takiego: switch(a) { case 1: wynik = 'jeden'; przerwanie; przypadek 2: wynik = „dwa”; przerwanie; domyślnie: wynik = 'nie określono'; przerwanie; } Zauważyłem tę konstrukcję w PHP i JS, ale prawdopodobnie istnieje wiele innych języków, które jej używają. Jeśli `switch` jest alternatywą `if`, dlaczego nie możemy użyć tej samej konstrukcji dla `switch`, co dla `if`? Np.: switch(a) { przypadek 1: { wynik = „jeden”; } przypadek 2: { wynik = 'dwa'; } default: { wynik = 'nie określono'; } } Mówi się, że `break` uniemożliwia wykonanie bloków następujących po bieżącym. Ale czy rzeczywiście ktoś natknął się na sytuację, w której zaistniała potrzeba wykonania bieżącego bloku i kolejnych? Nie. Dla mnie „przerwa” jest zawsze. W każdym bloku. W każdym kodzie.


title: Badania doktoranckie i praca w firmie o podobnym profilu

text: Jakie są wspólne wytyczne i najlepsze praktyki dla programistów, którzy studiują na studiach magisterskich lub doktoranckich, a jednocześnie pracują, aby zarabiać na życie w jednostce komercyjnej. Zwłaszcza, jeśli profil podmiotu komercyjnego jest częściowo zbliżony do tematu badań. Powodem tego pytania jest to, że: * Studenci studiów magisterskich/doktoranckich muszą publikować swoje wyniki, a tym samym udostępniają informacje do domeny publicznej * Podmioty komercyjne zwykle mają klauzule, że wszystkie zadania przypisane ich pracownikom, w formie elektronicznej, ustnej i pisemnej, są są faktycznie chronione prawami autorskimi, a pracownik przenosi całość własności na podmiot komercyjny * Większość badań komercyjnych jest uważana za tajemnicę handlową i nie może być udostępniona do domeny publicznej, NDA itp. Na przykład, jeśli jesteś zatrudniony w firmie, która symuluje parametry turbiny przy użyciu klastrów serwerów, podczas gdy Twoim tematem badawczym jest na przykład „Struktury symulacji fizyki”. Rzecz nagle staje się zabłocona. Jednocześnie jednak wydaje się, że tysiące ludzi pracuje i publikuje swoje odkrycia na konferencjach, pracując dokładnie w tej samej dziedzinie. Jaki jest haczyk? Jak możesz dalej wykonywać swoją pracę badawczą, zachowując prawa do dokładnej dziedziny badań oraz prawa autorskie do wdrożenia dowodu koncepcji/prototypu/produktu po ukończeniu studiów, jeśli później tak zdecydujesz. Wygląda na to, że wiele osób jakoś to robi.


title: Projekt zamrożony - co mam zostawić ludziom po mnie?

text: Tak więc projekt, nad którym pracowałem, zostanie teraz zamrożony na czas nieokreślony. Możliwe, że jeśli i kiedy projekt ponownie się zawiesi, nie zostanie on przypisany do mnie ani nikogo z obecnego zespołu. Właściwie odziedziczyliśmy projekt po tym, jak został wcześniej zamrożony, ale poprzedni zespół nie pozostawił nic, co pomogłoby nam zrozumieć nawet podstawowe potrzeby projektu, więc zmarnowaliśmy dużo czasu na dobre poznanie projektu. Moje pytanie brzmi, co Twoim zdaniem powinniśmy zrobić, aby pomóc ludziom po nas najlepiej zrozumieć potrzeby projektu, co zrobiliśmy, dlaczego to zrobiliśmy itp. Jestem otwarty na inne pomysły, dlaczego powinniśmy odejść niektóre utwory do innych, które również będą pracować nad tym projektem. Kilka kroków, które już podjęliśmy: * dokumentacja techniczna (nie pełna, ale przynajmniej jest); * historia systemu kontroli źródła; * szacunki, które części projektu wymagają poprawy i dlaczego tak sądzimy; * pakiet testów jednostkowych. * wydaj tracker ze wszystkimi biletami, które zrobiliśmy ( **EDYTUJ** ) Co sądzisz o tym, co już przygotowaliśmy i co jeszcze możemy zrobić?


title: Jaki jest dobry model ciągłej informacji zwrotnej od menedżera <-> programisty?

text: Czy dla menedżerów ważne jest, aby regularnie informować programistów o tym, jak sobie radzą i na odwrót? Mówię na odwrót, ponieważ uważam, że pracownicy są odpowiedzialni przed swoim przełożonym, a menedżerowie są odpowiedzialni przed swoimi pracownikami. Wydaje się, że wszyscy uważają, że to dobry pomysł, ale w praktyce rzadko widzę, jak to się dzieje, ponieważ tak wiele sklepów jest teraz „zwinnych”, a to zwykle oznacza codzienny standup plus cotygodniowy kickoff itp. Więc po prostu nie zdarzyć. Na moim ostatnim stanowisku miałem pierwszy kontakt sam na sam z moim menedżerem 6 miesięcy po tym, jak byłem w firmie. Okazało się, że powstało wiele nieporozumień, niewspółosiowości i zamieszania, które narastały jak kula śniegowa. Nic dziwnego, gdy przez tak długi czas nie ma bezpośredniej komunikacji osobistej.


title: Po co uczyć się programu Flash Builder 4 (Flex), skoro mogę po prostu korzystać z programu Flash Professional?

text: Chcę nauczyć się Flash Builder 4 (Flex), ponieważ widzę tak wiele miejsc pracy, które wymagają doświadczenia z nim. Po prostu lubię wiedzieć różne rzeczy. Jestem również bardzo zainteresowany skupieniem się teraz na rozwoju OSR. ALE... czy ktoś może mi WYRAŹNIE powiedzieć, dlaczego do cholery kiedykolwiek używałbym FLEXa zamiast Flash Pro? To inwestycja czasowa, więc czy warto? Wszystko, co czytam, to mylące posty o tym, jak Flash Pro jest dla gier i banerów reklamowych, a Flex jest dla programistów i RIA bla bla… to po prostu nie jest tak z mojego 9-letniego doświadczenia w kontraktach. Jestem na 99,9% pewien, że mogę zbudować wszystko, co programista fleksa może zbudować, ale używając Flash Pro. Potrafię tworzyć potężne aplikacje oparte na AS3 na komputery stacjonarne, urządzenia mobilne lub przeglądarki, a także łączyć się z bazami danych za pomocą XML, a także importować pliki tekstowe i komunikować się z ColdFusion i wszystkim. Zaletą programu Flash Pro jest to, że mogę również łatwo i wyraźnie animować przejścia i tworzyć niestandardowe elementy, które wyglądają tak, jak chcę/potrzebuję, aby wyglądały dla mojego konkretnego klienta. Dlaczego miałbym chcieć używać kilku gotowych komponentów, które napędzają rozmiary moich plików na księżyc? Kto jest zadowolony z przycisku „przeciągnij i upuść”? Czy Flex jest po prostu rzeczą stworzoną dla programistów bez skłonności artystycznych? Jaka jest zaleta korzystania z niego? Zabiera mnie z powrotem do klasy Visual Basic. Wygląda na to, że muszę używać wielu narzędzi do importowania bzdur z Flash Pro do Flexa i bla bla ... po co, skoro mogę to wszystko ładnie zrobić we Flash Pro. Czy nie mam pojęcia, czy brakuje mi jakiegoś ważnego elementu układanki? Dzięki za jasność. PS, nie mogłem się mniej przejmować edytorami kodu. To nie są źli ludzie. Robią to tak, jakby ta rzecz nie odpowiadała nawet na wejście z klawiatury czy coś takiego. Czy i tak robi wszystko, czego potrzebuję. Proszę o pomoc tutaj. Jeśli po prostu nie muszę się tego uczyć, nie chcę tracić czasu.


title: Jakie narzędzia są dostępne do zdalnej komunikacji podczas pracy w domu lub w rozproszonym zespole?

text: Mój przełożony pozwala mojemu zespołowi zanurzyć palce w wodzie pracy w domu. Biorąc pod uwagę, że niedawne przejęcie innej firmy wymaga od niektórych pracowników pokochania tego nowego pomysłu, który każdego ranka pozwala na wycinanie nawet godziny wolnego od dojazdów do pracy, naprawdę chcę, aby to się udało. Aby odnieść sukces, potrzebujemy dobrych narzędzi, które znacznie ułatwią nam życie. Obecnie korzystamy z OpenVPN, a Team Foundation Server 2010 z SharePoint 2010 i używamy Live Messenger (do integracji z SharePoint i łatwiejszego pulpitu zdalnego) dla komunikatorów. Są to tylko to, czego używamy (i obecnie działają dobrze), ale możesz zaproponować inne produkty. A więc, jakie są wspaniałe narzędzia, które pomogą nam współpracować, komunikować się i ogólnie współpracować, gdy dzieli nas kilka godzin?


Czy znasz jakieś podcasty audio omawiające standardową bibliotekę PHP PHP (SPL). Chciałbym tego posłuchać w wannie.


title: Jakiego diagramu UML należy użyć, aby pokazać architekturę platformy?

text: Uczę się UML i mam teraz podstawową wiedzę, ale wciąż widzę tego rodzaju diagramy architektury wysokiego poziomu. Oto jeden z Microsoftu: ![tutaj wpisz opis obrazu](http://i.stack.imgur.com/nQw2n.jpg) Źródło: Zły obraz jest wart tysiąca długich dyskusji. Czy to jest diagram UML? Czy są jakieś zasady, których należy przestrzegać przy tworzeniu tego typu diagramów? Chciałbym przedstawić coś podobnego, tj. relacje między różnymi zainstalowanymi systemami / API... tj. Architektura platformy.


title: Na jakie aspekty powinienem uważać wybierając framework do tworzenia stron internetowych?

text: Jestem stosunkowo nowy w świecie tworzenia oprogramowania i wcześniej używałem frameworka Ruby on Rails do tworzenia stosunkowo prostych aplikacji. Wiem, że frameworki mogą być niezwykle przydatne, jeśli chodzi o szybkie uruchamianie i uruchamianie aplikacji. Wiem jednak również o dobrze udokumentowanych problemach Railsów w zakresie skalowalności i zastanawiałem się, czy są jakieś inne czynniki, których powinienem się wystrzegać przed podjęciem decyzji o użyciu frameworków internetowych w ogóle poza skalowalnością, szczególnie podczas projektowania nie- trywialne aplikacje biznesowe.


title: Jaka jest konwencja pomijania wierszy w programowaniu?

text: Zastanawiałem się, jaka jest konwencja omijania kolejek? Czy grupujemy podobne rzeczy, nie pomijamy żadnych wierszy, czy po prostu grupujemy wszystko razem, z wyjątkiem instrukcji if lub podobnych konstrukcji. Jeśli nie ma na to żadnej konwencji, powiedz mi, jak to robisz, a na koniec określę, czy chcę użyć którejś. Obecnie nie pomijam żadnych linii. Języki - C, C++, C#, PHP i Java


title: Czy CSS można uznać za DSL?

text: Według Wikipedii CSS jest językiem arkuszy stylów. Jest to jednak właściwie jedyny taki rodzaj języka w użyciu (przynajmniej z perspektywy programisty). Czy przy próbie kategoryzacji CSS jako języka lub technologii (np. w życiorysie) dopuszczalne byłoby nazwanie go po prostu językiem specyficznym dla domeny? Jeśli uważasz, że nie może, dlaczego nie?


title: Co to jest uniwersalny test IT (UNITT) i jak się do niego przygotować?

text: Będę przystąpił do zaawansowanego uniwersalnego testu IT PHP (UNITT) na stanowisko, na które się ubiegam. Nie znam jednak terminu „test jednostkowy”. Co to jest test jednostkowy i jak firma by go wykonała? Jeśli ktoś się z tym zna, daj mi znać, jak najlepiej się przygotować


title: Kiedy projekt Open Source jest gotowy do produkcji?

text: Kiedy znajdziesz nową bibliotekę / projekt open source, na jakie kryteria patrzysz przed włączeniem jej do bazy źródłowej. * Czy są pytania prawne, na które musisz odpowiedzieć? * Czy szukasz pewnej szybkości rozwoju? * Czy buzz społeczności jest wystarczającym powodem? * Czy Twoja decyzja zmienia się, jeśli to Ty stoisz w kolejce do projektu? * Czy złożoność domeny lub kodu zmienia Twój sposób myślenia o tym?


title: Czy powinienem być zaangażowany w biznesową stronę mojego projektu?

text: Przed moją obecną pracą zawsze zajmowałem się technicznymi aspektami projektu, takimi jak: * architektura * projektowanie * wydajność * bezpieczeństwo * itp. Teraz jestem kierownikiem zespołu projektu, który jest grą na stronie internetowej (nie moja) i jakoś zaangażowałem się w biznesową stronę projektu: * czego oczekują użytkownicy * reklamy pokazujące, na których stronach serwisu * mechanika gry * itd. Ale zupełnie nie zgadzam się z decyzjami ludzi biznesu (klienta lub właściciela produktu, jeśli wolisz) kierunków witryny. Oczywiście zgłaszam swoje obawy, niektóre z nich są brane pod uwagę, większość nie. Kontynuuję swoją pracę tak, jak lubię pracować tutaj, ale czuję, że produkt byłby lepszy niż ten, który jest teraz. Myślę, że to dlatego, że moim celem jest stworzenie interesującej i wymagającej gry, a ich celem jest przyciągnięcie jak największej liczby ludzi i zarobienie jak największej ilości pieniędzy (jest to gra płatna). Czy kiedykolwiek byliście w takiej sytuacji? Jakie są twoje doświadczenia?


title: Kiedy wdrożenie MVVM nie ma sensu?

text: Jestem wielkim fanem różnych wzorców i cały czas lubię uczyć się nowych, jednak myślę, że przy całej tej ewangelizacji wokół popularnych wzorców i anty-wzorców czasami powoduje to ślepą adopcję. Myślę, że większość rzeczy ma swoje plusy i minusy i ważne jest, aby dowiedzieć się, jakie są wady i kiedy nie ma sensu dokonywać konkretnego wyboru. Plusy są stale popierane. „To zależy” Myślę, że dotyczy to większości przypadków, ale branża słabo radzi sobie z komunikowaniem tego, od czego zależy. Również wiele wzorców wyłoniło się z dziedziczenia wartości z poprzednich wzorców lub ma pochodne, z których każdy wnosi do stołu inny zestaw zalet i wad. Im szybciej będziemy bardziej świadomi kompromisów w decyzjach, które podejmujemy w architekturze oprogramowania, tym szybciej podejmiemy lepsze decyzje. To moje pierwsze wyzwanie dla społeczności. Nawet jeśli jesteś wielkim fanem tego wzoru, zachęcam Cię do odkrycia wad i kiedy nie powinieneś go używać. Zdefiniuj, kiedy MVVM (Model-View-ViewModel) może nie mieć sensu w określonym oprogramowaniu i na podstawie jakich powodów. MVVM ma zestaw zalet i wad. Spróbujmy je zdefiniować. IŚĆ! :)


title: Organizowanie modeli w ASP.NET MVC

text: Buduję strony internetowe w ASP.NET MVC i szybko zorientowałem się, że moje modele stają się coraz trudniejsze do zorganizowania w miarę rozwoju. To, co zwykle robię, to tworzenie jednego modelu do dodawania i edytowania danych. Ale w moim widoku dodawania mam 2 dodatkowe właściwości. Więc ponownie używam tego samego modelu z 2 dodatkowymi właściwościami, ale nie używam ich w moim widoku edycji. Teraz mam kilka pytań na ten temat. Jak to organizujesz? * Czy tworzysz jedną klasę plików z wieloma modelami, czy lepiej jest utworzyć nowy plik dla każdego modelu? * Czy lepiej stworzyć nowy model, jeśli potrzebujesz kilku dodatkowych właściwości?


title: Zrozumienie interfejsu binarnego aplikacji (ABI)

text: Próbuję zrozumieć koncepcję interfejsu binarnego aplikacji (ABI). Z Linux Kernel Primer: > ABI jest zbiorem konwencji, które pozwalają linkerowi na łączenie oddzielnie > skompilowanych modułów w jedną jednostkę bez rekompilacji, takich jak wywoływanie > konwencji, interfejs maszyny i interfejs systemu operacyjnego. Między innymi ABI definiuje binarny interfejs między tymi jednostkami. ... Zaletą dostosowania się do ABI jest to, że umożliwia łączenie plików obiektowych > skompilowanych przez różne kompilatory. Z Wikipedii: > interfejs binarny aplikacji (ABI) opisuje interfejs niskiego poziomu > pomiędzy aplikacją (lub dowolnym rodzajem) programu a systemem operacyjnym lub > inną aplikacją. >> ABI obejmują szczegóły, takie jak typ danych, rozmiar i wyrównanie; konwencja wywoływania >, która kontroluje sposób przekazywania argumentów funkcji i zwracania > wartości; numery wywołań systemowych i jak aplikacja powinna wykonywać > wywołania systemowe do systemu operacyjnego; a w przypadku kompletnego systemu operacyjnego ABI, binarnego formatu plików obiektowych, bibliotek programów i tak dalej. 1. Zastanawiałem się, czy ABI zależy zarówno od zestawu instrukcji, jak i od systemu operacyjnego. Czy tylko od tych dwóch zależy ABI? 2. Jaką rolę odgrywa ABI na różnych etapach kompilacji: wstępne przetwarzanie, konwersja kodu z C do Assembly, konwersja kodu z Assembly do kodu maszynowego i linkowanie? Z pierwszego cytatu powyżej wydaje mi się, że ABI jest potrzebne tylko do łączenia etapów, a nie do pozostałych etapów. Czy to jest poprawne? 3. Kiedy należy wziąć pod uwagę ABI? Czy ABI musi być brane pod uwagę podczas programowania w C, Assemblerze lub innych językach? Jeśli tak, czym różnią się ABI i API? Czy jest to tylko linker lub kompilator? 4. Czy ABI jest określony dla/w kodzie maszynowym, języku asemblera i/lub C?


title: Kiedy oddzielić obawy aplikacyjne

text: Pracowałem dla wielu firm, które z biegiem czasu rozszerzyły swoją podstawową usługę, aby świadczyć dodatkowe usługi i/lub strumienie przychodów. Moje pytanie brzmi: kiedy jest właściwy czas, aby podzielić te problemy na wiele aplikacji, nawet jeśli działają na tych samych/rozszerzeniach niektórych danych? Załóżmy na przykład, że firma ma podstawową aplikację biznesową, która działa wokół indeksu muzycznego/odkrycia muzyki. Jeśli później firma zdecydowała się rozszerzyć działalność na oferowanie stron internetowych dla muzyków korzystających z ich istniejącego indeksu, czy powinna to być osobna aplikacja, która otrzymuje dane z aplikacji podstawowej za pośrednictwem API, czy też rozsądne jest wrzucenie tego do modułu istniejącej aplikacji i korzystać z istniejących obiektów biznesowych? Wydaje mi się, że **zdolność** do wrzucenia rzeczy do jednej aplikacji nie powinna być wystarczającym powodem, aby to zrobić. W systemie Unix praktykujemy separację obaw, ale jeśli chodzi o rozwój przedsiębiorstwa, ta zasada wydaje się zagubiona. W powyższym przykładzie uważam, że te _powinny_ być oddzielnymi aplikacjami, ale z mojego doświadczenia wynika, że programiści łączą je razem, aby zaoszczędzić czas.


title: Wyszukiwanie pozaintelektualne w dużym tekście

text: Czy kiedykolwiek widziałeś, spotkałeś lub pracowałeś z inteligentną/intelektualną biblioteką/ramą/algorytmem wyszukiwania podczas swojej kariery? Potrzebuję bardzo fajnego mechanizmu do przeszukiwania tekstu, nie potrzebuję "osobistego Google", po prostu pomyślałem, że społeczność programistów spotkała się z takim problemem i zna/może dostarczyć dobre rozwiązanie. Czy można wyszukiwać według „znaczenia” i czy mógłbyś doradzić sposób/technikę/myśli zgodnie z tym? Dziękuję Ci.


title: Kiedy utkniesz, jak szybko należy uciekać się do Stack Overflow?

text: Sam uczę się programowania na iOS w ramach kursu iTunes U CS193p i często utknąłem. Sam próbowałem się uwolnić, ale może minąć wiele godzin, zanim zorientuję się, co robię źle, czy to pominięcie metody, czy też nieuzyskanie całej koncepcji, takiej jak delegacja. Martwię się, że mogę marnować zbyt dużo czasu, i lepiej byłoby, gdybym poszedł do Stack Overflow wkrótce po tym, jak utknę, abym mógł iść dalej. Czy z Twojego doświadczenia wynika, że szybkie zadawanie pytań na Stack Overflow utrudnia proces uczenia się, czy go poprawia?


title: Czy HTML5/JS ostatecznie zastąpi wszystkie języki po stronie klienta?

text: Po prostu zastanawiam się nad przyszłością tego wszystkiego. IMHO, istnieją 4 siły, które określają kierunek rozwoju technologii: Microsoft, Apple, Google, Adobe. Wygląda na to, że w Apple iPhone/iPad iAD można teraz programować w HTML5. Czy to oznacza, że HTML5 ostatecznie zastąpi cel-c? Ponadto Microsoft przesunął teraz swój punkt ciężkości z WPF/Silverlight na HTML5 i zakładam, że Visual Studio 2011 będzie dotyczyć wyłącznie obsługi narzędzi dla HTML5. Bo to właśnie robi Microsoft. (Narzędzia). Za kilka miesięcy IE9 ostatnia duża przeglądarka będzie obsługiwała HTML5. Podobnie Adobe wchodzi w modę HTML5 i umożliwia eksportowanie treści flash do HTML5 w swoich najnowszych narzędziach. A wszyscy wiemy, ile w łóżku jest Google z html5. Heck, ich najnowszy system operacyjny (Chrome OS) to nic innego jak wielka, gruba przeglądarka internetowa. Aplikacje na urządzenia mobilne (tj. iPhone, Android, WM7) są bardzo trudne do zaprogramowania przez firmę, zwłaszcza na wiele różnych urządzeń (każde z własnym językiem), więc zakładam, że nie potrwa to zbyt długo. Oznacza to, że HTML5 będzie językiem jednoczącym. Co jest nieco smutne dla twórców aplikacji, ponieważ teraz użytkownicy będą mogli grać w „fajne” aplikacje HTML5 za darmo w sieci i trudno będzie za nie pobierać opłaty. Czy języki silnie typowane są naprawdę skazane na zagładę i czy w przyszłości, powiedzmy za 5-10 lat, programowanie po stronie klienta będzie dostępne tylko w HTML5? Czy wszyscy zostaniemy programistami javascript? :) Bo znaki na pewno tam wskazują...


title: Jak znaleźć rzeczywiste przykłady wzorców projektowych?

text: Witam Uczę się wzorców projektowych z książki. Jak ustalić rzeczywisty kod produkcyjny, w którym jest zaimplementowany. Na przykład, jeśli uczę się wzorca strategii, może on zostać zaimplementowany w ramach Spring. Ale jak tam iść, poszukać i zobaczyć. Czy macie jakieś proste sposoby na znalezienie takich rzeczy?


title: Jakie są pytania do rozmowy kwalifikacyjnej QUICK dla zadań programistycznych Microsoft Stack?

text: Szukam Twoich najlepszych pytań technicznych do rozmowy kwalifikacyjnej „szybkiej odpowiedzi”. Jesteśmy w 100% sklepem Microsoft i większość naszych prac programistycznych wykonujemy na stosie internetowym ASP.NET w C# i mamy niestandardową strukturę SOA napisaną również w C#. Używamy kombinacji Web Forms, MVC, Web Services, WCF, Entity Framework, SQL Server, TSQL, jQuery, LINQ i TFS w środowisku SCRUM. Obecnie korzystamy z platformy .NET 3.5 z bardzo bliskim przejściem na platformę .NET 4.0. Nasz proces rozmowy kwalifikacyjnej obejmuje 55-minutową rozmowę kwalifikacyjną z dwiema osobami technicznymi (zwykle architektem i starszym deweloperem). Dwóch ankieterów musi dzielić czas na pytania. To za mało czasu na wiele prawdziwych problemów programistycznych, więc szukam więcej dobrych pytań, które mają szybkie, ale znaczące odpowiedzi. Obecnie przeprowadzamy rozmowy kwalifikacyjne na stanowiska Senior Dev, ale możemy przeprowadzić wywiady z niektórymi Juniorami w przyszłości. Proszę pomóż? EDYTOWANE W CELU WYJAŚNIENIA: Nie musi koniecznie być specyficzne dla stosu MS. Po prostu nie chcę pytań, które są specyficzne dla INNYCH stosów technologicznych, takich jak Ruby czy Java.


title: Jak radzisz sobie z dynamiczną naturą tworzenia oprogramowania wysokiego poziomu?

text: Uważam się za programistę wysokiego poziomu. Bardzo lubię czytać i pomogło mi to w mojej karierze. Myślę, że dobrze mi idzie. Obecnie spędzam dużo czasu na uczeniu się nowych rzeczy. Nie jestem teraz do kitu, jeśli chodzi o pisanie kodu, ale mam zamiar założyć rodzinę i regularnie widuję wielu seniorów z 14-15-letnim doświadczeniem, którzy – ponieważ ograniczają naukę nowych rzeczy – są teraz do bani w programowaniu. Byli inspirującymi postaciami w pewnym momencie, ale już nimi nie są. Możesz argumentować, że podstawy nigdy się nie zmieniają, ale wydaje się, że robi to różnicę, gdy kodujesz w Delphi przez 10 lat i nagle wszyscy używają frameworka .NET. To prawda, że nauczenie się nowego frameworka zajmie doświadczonemu programiście mniej czasu, ale nadal **wymaga to** czasu i wysiłku. W jaki sposób programista radzi sobie z wymaganiami pracy, jednocześnie będąc w stanie skoncentrować się na rzeczach, które koniecznie wyrywają cię z pracy, takich jak założenie rodziny?


title: Jakie są główne różnice przy przechodzeniu z programowania opartego na konsolach do programowania opartego na graficznym interfejsie użytkownika?

text: Zacząłem, jak wielu innych, od programowania konsolowego (jak w terminalu, a nie Playstation). Ale prędzej czy później trzeba dotknąć programowania opartego na GUI, czy tego chcesz, czy nie. To przejście zawiera wiele zmian w sposobie myślenia o frontendzie (i być może także o backendzie). Jakie są więc główne różnice przy przechodzeniu z programowania opartego na konsolach do programowania opartego na graficznym interfejsie użytkownika?


title: Co sprawia, że zespół programistów odnosi sukcesy?

text: Jakie są oznaki sukcesu zespołu programistycznego? Jakie cechy musi posiadać zespół programistów, aby odnieść sukces?


title: Jeśli skończę jeden projekt, czy powinienem poczekać do następnego dnia z rozpoczęciem kolejnego czy zacząć od razu?

text: Są dni, w których czuję, że dużo robię. Skończyłem wdrażanie mojego najnowszego projektu i wyczyściłem wszystko z mojej listy TODO, i wciąż mam trochę czasu w ciągu dnia. Mam kilka większych projektów, w które mógłbym się zagłębić, ale jest to bardzo trudne, gdy czuję, że udało mi się osiągnąć całkiem sporo w jeden poranek i wiem, że za kilka godzin wyjeżdżam na cały dzień. Jest jeszcze gorzej, gdy jest piątek (tak jak dzisiaj) W takiej sytuacji mam tendencję do odpuszczania. Przeglądaj SO i odpowiadaj na pytania do nauki, pracuj nad niektórymi niestandardowymi bibliotekami dla siebie, surfuj po Internecie w poszukiwaniu fajnych i interesujących rzeczy do nauczenia.... Staram się ograniczać to do rzeczy związanych z pracą, ale naprawdę trudno mi się skupić . Moje pytanie brzmi: jak wrócić na właściwe tory? A może powinienem się w ogóle przejmować? Czy można spędzić resztę dnia na nauce, czy może powinienem po prostu westchnąć i zacząć brnąć w inny projekt, wiedząc, że nie będę miał czasu na wiele, a większość z nich zapomnę do poniedziałku?


title: Co wyróżnia dobrego Scrum Mastera?

text: Jak rozpoznać dobrego Scrum Mastera? Oto kilka możliwości: 1. Osoba jest zwinna (nie tylko robi się zwinna). Wskaźniki: Blog, działania wolontariackie 2. Osoba dobrze łączy się z innymi na poziomie emocji i potrzeb (nie tylko technicznych). 3. Osoba jest nieustępliwa i nieustraszona podczas usuwania przeszkód


title: Zarządzanie cyklem życia projektu — podejście Maven kontra „ręczne”

text: Mam pytanie dotyczące zarządzania cyklem życia/wielu projektów, a dokładniej mówiąc o zaletach/wadach korzystania z technologii takich jak Maven. Obecnie pracujemy w środowisku ciągłej integracji, ale wiele rzeczy nadal wymaga ręcznego wykonania (zarządzanie zależnościami, wdrażanie, konfigurowanie dokumentacji, generowanie statystyk, ...). Mam wrażenie, że takie podejście często prowadzi do błędów, nieporozumień lub po prostu zapomina się o rzeczach. Znam i używałem Maven w przeszłości, ale w mniejszych środowiskach i zawsze byłem bardzo entuzjastycznie nastawiony do tego. Ale zastanawiałem się, czy ktoś mógłby podzielić się spostrzeżeniami, doświadczeniami, zaletami, wadami, ... na temat wykorzystania Maven (lub podobnej technologii) w większych środowiskach i przy wielu projektach. Chciałabym skorzystać z przedstawionych tu sugestii, aby rozpocząć debatę o przejściu na wyższy poziom w zarządzaniu projektami!


title: Prawdziwa różnica między aplikacjami internetowymi a natywnymi na urządzeniach mobilnych i inteligentnych

text: Nadal nie rozumiem różnicy między aplikacją natywną a aplikacjami internetowymi lub hybrydowymi z punktu widzenia interfejsu. Teraz aplikacje takie jak Twitter, Facebook itp. Czy są natywne? czy w sieci? czy aplikacje hybrydowe? W tych aplikacjach użyto najczęściej kodu? czy to HTML i JS? czy jest to język taki jak Objective C lub Java? Wciąż jestem zdezorientowany.


title: Sugestie dotyczące logiki składni

text: Ta składnia będzie używana wewnątrz atrybutów HTML. Oto kilka przykładów tego, co mam do tej pory: <input name="a" condition="!b, c" /> <input name="b" /> <input name="c" /> To sprawi, że input "a" zrób coś, jeśli `b` nie jest zaznaczone, a `c` jest zaznaczone (przyjmuje się, że b i c są polami wyboru, jeśli nie mają zdefiniowanej `:value`) * * * <input name="a " condition="!b:foo|bar, c:foo" /> <input name="b" /> <input name="c" /> Spowoduje to, że wejście "a" zrobi coś, jeśli `b`nie robi' nie ma wartości „foo” lub „bar”, a jeśli „c” ma wartość „foo”. * * * <input name="a" condition="!b:EMPTY" /> <input name="b" /> Sprawia, że wejście "a" robi coś, jeśli `b` ma przypisaną wartość. * * * Zatem zasadniczo `,` działa jako logiczne AND, `:` jako równe (=), `!` jako NIE, a `|` jako LUB. „|” (LUB) jest potrzebne tylko między wartościami (przynajmniej tak mi się wydaje), a AND nie jest potrzebne między wartościami z oczywistych powodów :) „PUSTY” oznacza pustą wartość, np. „<wartość wejściowa="" />" Czy masz jakieś sugestie dotyczące ulepszenia tej składni, na przykład uczynienia jej bardziej przyjazną dla człowieka? Na przykład uważam, że słowo kluczowe „EMPTY” nie jest właściwe i powinno zostać zastąpione znakiem, ale nie wiem, który wybrać.