title: Jak zebrać listę kanałów rss?

text: Rozwijam czytnik rss, w którym użytkownicy przeszukują i śledzą blogi. Ale jak mam zbierać i przechowywać kanały tysięcy blogów? Ręczny proces dodawania poszczególnych karm jest bolesny. Czy istnieje prostszy sposób na dodawanie lub importowanie kanałów witryny?


title: Używaj terminów „wektor” lub „tablica” w dyskusji wysokiego poziomu na temat kodu C++

text: Kiedy piszę dokumentację wysokiego poziomu o tym, co robi algorytm, używam terminu „tablica” w odniesieniu do struktury danych, na której działa algorytm, mimo że rzeczywista struktura danych to `std::vector`. Uważam, że użycie terminu „wektor” w tym kontekście nie oddaje (dla mnie) najlepiej znaczenia, za którym podążam, jako „sekwencja elementów z losowym dostępem o stałym czasie” lub bardziej ogólnie „tablica dynamiczna”. Czy istnieje konwencja lub wspólny standard dokumentacji dla tego rozróżnienia podobnych terminów?


title: Jak przekonać kolegów z drużyny do przestrzegania podstawowych zasad

text: Mam problem z kolegami z drużyny. Krótko mówiąc: jesteśmy trzema studentami pracującymi nad projektem na konkurs. Projekt składa się z 2 osobnych aplikacji: jednej na Windows (którą tworzę) i jednej na Androida (za jej tworzenie odpowiadają moi koledzy). Nasze bazy kodu nigdy się nie przecinają, aplikacje będą komunikować się za pośrednictwem narzędzi innych firm. Problem jest następujący: mam pewne doświadczenie w pracy w zespołach, ponieważ w zeszłym roku odbyłem staż w dużej firmie i staram się wymusić pewne standardy kodowania w naszym kodzie. Skonfigurowałem również oprogramowanie do repozytorium git / wiki / współpracy, którego możemy używać do przesyłania kodu / pisania pomysłów, protokołów dokumentów i tak dalej, ale wygląda na to, że jestem jedynym, który korzysta z tych narzędzi. Próbowałem im powiedzieć, że pisanie wysokiej jakości kodu i dokumentowanie każdego kroku przyniesie nam korzyści na dłuższą metę, ale wydaje się, że nie widzą z tego korzyści. Myślałem też o dodaniu testów integracyjnych, ale z tego co widzę, o ile nie korzystają z aktualnych narzędzi ułatwiających sobie życie, nie sądzę, żebym mógł ich przekonać do przydatności testów integracyjnych. Większość kodu peera znajduje się na ich komputerach, nie mają oni wspólnej bazy kodu i jak się dowiedziałem, zintegrowali swoje fragmenty poprzez spotkania i udostępnianie kodu przez pamięć USB. Moje pytanie brzmi: czy jestem zbyt surowy w tej sprawie? Czy egzekwuję jakieś absurdalne zasady? Należy pamiętać, że jest to mały projekt, wymagania są bardzo jasne (stworzyłem dokumenty określające, co powinny robić aplikacje), trzech wykwalifikowanych programistów może to zrobić w ciągu 3-4 dni, więc mogą nie zauważyć dodatkowej złożoności jakości pisania kod tak długo, jak ich aktualna metoda działa. Czy jest jakiś sposób, aby pokazać im korzyści z dokumentowania kodu za pomocą git i tak dalej?


title: Ucz programowania w systemie Linux 15-latka uczącego się w domu

text: Uczę w domu 15-latka i chciałbym nauczyć go programowania. Na wszystkich naszych domowych komputerach działa Ubuntu. Jakie są dobre opcje? Jak na razie skłaniam się ku Scratchowi, ale ostatnio dowiedziałem się, że w repozytorium Ubuntu znajduje się darmowy projekt Basic, który jest ukierunkowany na nauczanie, chociaż jeszcze go nie sprawdzałem. Myślałem też o przejściu od razu do programowania mobilnego, ponieważ ma telefon z Androidem i byłby to całkiem imponujący początek rozmowy, gdyby mógł nauczyć się tworzyć własne aplikacje. Jestem bardzo otwarty na to... niebo jest granicą!


title: Jak ulepszyć algorytmy nauki?

text: Obecnie studiuję informatykę w Instytucie i mam problemy z kursem Algorytmy, dopiero zacząłem go studiować, ale już czuję, że go nie zaliczę, mój problem jest to, że rozumiejąc różne algorytmy na wykresach muszę pamiętać o dużej ilości informacji, a zazwyczaj nie mogę tego zrobić, zapominam o niektórych punktach ćwiczenia lub nie mogę przejść do końcowego wyniku, jestem bardzo zdesperowana o tym, bo bardzo lubię programować. Czy ktoś czuł to samo podczas studiów na uniwersytecie? PS Zacząłem programować dopiero dwa lata temu, czy to może być problem?


title: Czy projekt używający odpowiedniego TDD ma dużo kodu bez testów?

text: Większość (wszystkie?) zasobów TDD pokazuje, jak przebiega cykl: * Napisz test * Sprawdź test * Napisz kod produkcyjny * Sprawdź test * Oczyść kod produkcyjny * Sprawdź test. testy_. Jednak czytając posty, takie jak Pisanie świetnych testów jednostkowych: najlepsze i najgorsze praktyki (na przykład, do których prowadzą linki tutaj) mówi się, że > **TDD to solidny sposób projektowania komponentów oprogramowania („jednostek”) > w sposób interaktywny, aby określić ich zachowanie poprzez testy jednostkowe** Aby uzupełnić nieco więcej kontekstu: > Na drugim końcu skali, **testy integracyjne** nie zawierają żadnej wiedzy > o tym, jak Twój kod jest podzielony na jednostki, ale zamiast tego składają > stwierdzenia o tym, jak całość system zachowuje się w stosunku do użytkownika zewnętrznego. Dla mnie to ma sens. Oznacza to jednak, że **duże części** aplikacji **kod** **nie są objęte testami**. Czemu? Ponieważ jeśli masz jednostki (i potrzebujesz ich dużo, aby poprawnie przeprowadzić testy jednostkowe), potrzebujesz kodu, który łączy jednostki ze sobą. Ten kod, IMHO, _będzie_ stał się na tyle skomplikowany, że zasługuje na testowanie na bardziej szczegółowym poziomie niż testowanie integracji, podczas gdy prawdopodobnie mieści się w „Dirty Hybris”: > Gdziekolwiek pomiędzy, nie jest jasne, jakie przyjmujesz założenia, a jakie > staram się udowodnić. Refaktoryzacja może zepsuć te testy lub może > nie, niezależnie od tego, czy wrażenia użytkownika końcowego nadal działają. Podsumowując: * Łatwo widzę wartość _Testy jednostkowe_ z TDD * Do połączenia jednostek potrzebny jest kod * To kod będzie złożony, a testy integracyjne będą/mogą nie wystarczyć. * Zasoby TDD w sieci zdają się sugerować 100% pokrycie kodu/testów, jednak * patrzenie na TDD za pomocą prawdziwych testów jednostkowych pozostawia część kodu niesprawdzonego * * * Edycja: wikipedia mówi: > Testowanie integracji przyjmuje jako moduły wejściowe, które zostały przetestowane, ale jakoś czuję, że na zdjęciu wciąż brakuje trochę kodu okablowania. (z wyjątkiem sytuacji, gdy „moduł” oznacza „klasę lub funkcję”, ponieważ to właśnie jest testowana jednostka w izolacji) * * * Wgląd?


title: Zarządzanie komunikacją międzywątkową w sprawie zgłoszeń problemów/błędów

text: W moim obecnym projekcie mamy dwóch lub trzech inżynierów, którzy są oznaczeni jako wsparcie Tier 2 lub Tier 3. Często współpracujemy bezpośrednio z klientami, aby zebrać szczegółowe informacje o błędach i zgłoszeniach problemów. Często dostajemy cross-talk w wątkach e-mailowych i rozmowach o problemach. Podczas omawiania problemu nr 1 ktoś wtrąca „A tak przy okazji, znaleźliśmy problem nr 2”. Lub po rozwiązaniu problemu nr 1 pojawia się pytanie „Dziękujemy za naprawienie tego. Gdzie jesteś z problemem nr 3”. Uważam, że jest to niezwykle irytujące i może utrudnić odkrywanie wątków podczas przeglądania historii zgłoszenia błędu, ponieważ wszystkie wątki są pomieszane. Czy ktoś może zaproponować jakieś strategie zarządzania tą komunikacją? Czy istnieje uprzejmy sposób na rozwiązanie tego problemu i skupienie się na jednym zadaniu? Czy jest jakaś wada skupienia się na jednym problemie?


title: Python: przyszłość jako główny język programowania?

text: Po przeczytaniu materiału Pythona i zobaczeniu kodu Pythona kilka lat temu, postanowiłem się tym zająć. Postanowiłem zacząć od Pythona, aby rozwiązać problemy w Project Euler i byłem pod wielkim wrażeniem języka. Od tego czasu zacząłem uczyć się Django, a teraz używam go głównie do moich aplikacji internetowych. Bardzo chciałbym mieć programowanie kariery w tym języku, jednak obawiam się, że przyszłość tego języka jest obecnie niepewna. Biorąc pod uwagę Google i inne duże firmy, może być pewna nadzieja, co myślisz o Pythonie, czy widzisz tam wiele możliwości pracy?


title: Motywowanie programistów do projektu postrzeganego jako nudny?

text: Jako menedżer nie zawsze mogę generować pracę, która byłaby najnowocześniejsza. Niektóre projekty działają w trybie konserwacji i generują zdrowe wolne przepływy pieniężne dla firmy. Jako programista, czego potrzebowałbyś, abyś został w tym projekcie? Myślałem o rebrandingu pracy, ale tutaj przydałaby mi się duża pomoc. EDIT: Dziękuję wszystkim za sugestie. Jak dotąd, oto co mamy: 1. Rotację prac zgodnie z zainteresowaniami programistów 2. Elastyczne środowisko pracy 3. Przydziel czas na pracę nad projektami dla zwierząt 4. Towarzyskie i zabawę 5. Branding projektu 6. Użyj tego jako kroku kamień do innych projektów


title: Zaangażowanie się na Github (jak znaleźć projekty)

text: Chcę współtworzyć projekty open source na Github. Przede wszystkim chciałbym zacząć od naprawiania drobnych błędów lub dodawania funkcji. Nie mam na myśli konkretnego projektu. Chciałbym pracować nad projektami C, C++, Python, .NET, Java itp. Jednak mój problem polega na tym, że nie mogę dowiedzieć się, jak znaleźć coś na Github. Znalazłem stronę na Explore Github, która zawiera listę projektów w C. Zasadniczo zawiera listę 5 najczęściej oglądanych projektów C. OK, w porządku, ale chcę zobaczyć więcej niż 5. Sourceforge był/jest świetny, ponieważ możesz przeglądać projekty za pomocą języka programowania. Ponadto SourceForge posiada lub posiadało forum do wyszukiwania projektów, które proszą o pomoc. Nie mogę tego znaleźć na Github. Istnieje funkcja „Szukaj”, która wydaje się dość bezużyteczna przy znajdowaniu projektów, do których można się przyczynić. Wypróbowałem wyszukiwanie zaawansowane, ustawiając je na "Repozytoria" i "C" dla języka programowania. Musisz jednak coś włożyć w poszukiwania; chociaż chcę tylko przeglądać tytuły i opisy projektów. Więc spróbowałem umieścić "sieć" tylko po to, żeby zobaczyć, co się pojawi. Daje tylko listę wszystkich widelców każdego projektu, jaki istnieje. Czy jest jakiś sposób, w jaki mogę wyszukiwać, powiedzmy przez stronę trzecią lub coś, projektów w rozsądny sposób? Wygląda na to, że Github powinien mieć coś takiego; Wybrałbym po prostu Sourceforge, ponieważ mogę tam szukać, ale chcę założyć profil na Github, ponieważ jest to klimat miesiąca, a w Hacker News są wszyscy ci fanboye, którzy zdają się myśleć, że profil na Github jest lepszy niż CV /CV. :)


title: Parsowanie danych Excela w Javie, przed zapisaniem ich w bazie danych

text: Pracuję nad jakimś projektem, w którym muszę zrobić bazę danych dla danych, które są aktualnie przechowywane w plikach Excela, więc przed zapisaniem danych do bazy muszę dokonać pewnych zmian. Zamierzam odczytać te pliki za pomocą Javy i zapisać je z Javy do bazy danych. Czy powinienem używać Hibernate do tej pracy? Albo jak inaczej mogę połączyć się z tymi arkuszami Excela, odczytać dane w Javie, z bazą danych? Jestem w tym nowy, więc nie mam żadnego doświadczenia. Również angielski nie jest moim językiem ojczystym, więc przepraszam z powodu błędów gramatycznych.


title: Jak nazwać typy zdarzeń?

text: Czysty kod zaleca, aby metody nazywać czasownikami, a klasy rzeczownikami. Tworzę aplikację w c++ przy użyciu boost::signal jako pewnego rodzaju frameworku zdarzeń i zdefiniowałem różne zdarzenia, ale nazywanie ich w celu oczyszczenia kodu wydaje się być problematyczne. Jak więc nazwać typy zdarzeń?


title: Czy można luźno powiązać aplikację z jej frameworkiem?

text: Załóżmy, że tworzę aplikację internetową. Moim pierwszym wyborem jest użycie PHP z Fat-Free Framework (F3) i wzorcem MVC. W przyszłym roku może zdecyduję, że chcę przejść na Zend Framework, a może nawet ASP.NET MVC. Czy ma sens próbować zaprojektować moją aplikację w taki sposób, aby była luźno powiązana z jej ramą, czy też struktura jest zbyt integralna, aby było to realistyczne? Jedynym powodem, dla którego pytam, jest to, że pojawił się ostatnio w rozmowie z rówieśnikiem, który skrytykował mój pomysł na luźne łączenie mojej aplikacji z F3.


title: Czego mi brakuje w moim (nie)rozumieniu IoC/DI/Castle Windsor?

text: Ok, więc oto jak rozumiem IoC i DI w Web API, aby działały podczas korzystania z Castle Windsor. Zauważ jednak, że moja pewność, że rozumiem to tak, jak powinienem, mieści się gdzieś pomiędzy przekonaniem, że mogę pokonać Dennisa Rodmana w meczu koszykówki jeden na jednego, a moim zaufaniem do jego zdrowia psychicznego. Inaczej mówiąc, kilka ostatnich dni spędziłem czytając IoC/DI/Castle Windsor za pomocą Web API i eksperymentując z nim, ale wciąż mam ochotę odpowiedzieć: „Wszystko w dół oprócz dziewięciu, pard; ustaw są na drugim zaułku. Mam na ten temat kilka bardziej szczegółowych pytań na temat Stack Overflow, takich jak ten, ale nie jestem jeszcze na ten temat jaśniejszy. Zamierzam więc „porozmawiać na głos” i mam nadzieję, że ktoś odpowie czymś, co udoskonali moje rozumienie, rzuci trochę światła na ten nieprzejrzysty (dla mnie) temat lub pomoże rozwikłać ten węzeł gordyjski. Punkt: Podstawą IoC/DI jest przekazywanie interfejsów do konstruktorów, dzięki czemu klasa z konstruktorem nie musi tworzyć własnych obiektów; w rzeczywistości nie musi znać składnika/klasy betonu. Punkt: Aby to ustawić, potrzebujesz takiego kodu w kontrolerach: private readonly IDepartmentRepository _deptsRepository; public DepartmentsController(IDepartmentRepository deptsRepository) { if (deptsRepository == null) { wyrzuć nowy ArgumentNullException("deptsRepository ma wartość null"); } _deptsRepository = deptsRepository; } Point: Część klasy implementującej IDepartmentRepository jest przekazywana do konstruktora DepartmentsController. własne, podobnie jak w przypadku takiego kodu, w global.asax.cs: GlobalConfiguration.Configuration.Services.Replace(typeof(IHttpControllerActivator), new WindsorCompositionRoot(_container)); Punkt: Global.asax.cs' Application_Start() kręci piłkę i wywołuje Installer/Registrar z kodem takim jak: protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); ConfigureWindsor(GlobalConfiguration.Configuration); } public static void ConfigureWindsor(HttpConfiguration configuration) { _container = new WindsorContainer(); _container.Install(FromAssembly.This()); _container.Kernel.Resolver.AddSubResolver(nowy CollectionResolver(_container.Kernel, true)); var dependencyResolver = new WindsorDependencyResolver(_container); configuration.DependencyResolver = dependencyResolver; } Punkt: W tym celu trzeba ustawić wiele innych rusztowań Zamku Windsor. W szczególności klasy muszą być "zainstalowane" (zarejestrowane - myślę, że zarejestrowane byłoby dla nich lepszym/łatwiejszym określeniem). Jest to jeden z moich głównych obszarów typu „powiedz co?”/headscratching. Nie wiem, czy ten kod rejestracyjny powinien wyglądać tak: obiekt publiczny GetService(Type serviceType) { return _container.Kernel.HasComponent(serviceType) ? _container.Resolve(serviceType) : null; } public IEnumerable<obiekt> GetServices(Type serviceType) { if (!_container.Kernel.HasComponent(serviceType)) { return new object[0]; } return _container.ResolveAll(serviceType).Cast<object>(); } ...lub tak: public class ApiControllersInstaller : IWindsorInstaller { public void Install(Castle.Windsor.IWindsorContainer kontener, Castle.MicroKernel.SubSystems.Configuration.IConfigurationStore store) { container.Register(Classes.FromThisAssembly() // powinien to być typami zamiast klasami .BasedOn<ApiController>() .LifestylePerWebRequest()); } } ...lub tak: public class ServiceInstaller : IWindsorInstaller { public void Install(IWindsorContainer kontener, IConfigurationStore store) { container.Register( Component.For<IDeliveryItemRepository>().ImplementedBy<DeliveryItemRepository>().LifestylePerWebRequest(), Component.For<IDeliveryRepository>().ImplementedBy<DeliveryRepository>().LifestylePerWebRequest(), Component.For<IDepartmentRepository>().ImplementedBy<DepartmentRepository>().LifestylePerWebRequest(), Component.For<IExpenseRepository>().ImplementedBy <ExpenseRepository>().LifestylePerWebRequest(), Component.For<IInventoryItemRepository>().ImplementedBy<InventoryItemRepository>().LifestylePerWebRequest(), Component.For<IInventoryRepository>().ImplementedBy<InventoryRepository>().LifestylePerWebRequest() Component.For<IItemGroupRepository>().Implemen tedBy<ItemGroupRepository>().LifestylePerWebRequest()); } } ...albo inaczej... Punkt: Gdy wszystko jest już skonfigurowane i kontrolery (i repozytoria? Czy muszę o nich jeszcze coś zrobić, aby były bezpieczne dla CW?) zostały zarejestrowane przez Silnik routingu Castle Windsor, wywołanie mojej aplikacji Web API, takie jak: http://platypus:28642/api/Departments ... zostanie rozwiązane na "komponent" (klasa betonu), który implementuje IDepartmentRepository. CW będzie w stanie to rozgryźć, o ile mam jedną klasę, która implementuje IDepartmentRepository, czyli tę, która po cichu przekazuje do konstruktora kontrolera, który pobiera argument dla klasy implementującej IDepartmentRepository. Ale… co, jeśli istnieje N klas, które implementują IDepartmentRepository? Skąd CW wie, który z nich przekazać do konstruktora kontrolera? Jak ja, skromny człowiek w tym spotkaniu krzemu i różowej, gąbczastej materii, określić, który z N chcę przekazać konstruktorowi CW?


title: Jak zdobyć pierwszą pracę na stronie freelancera?

text: Jestem nowy w serwisach freelancerskich. Problem w tym, że mam zerową ocenę i nie mogę dostać żadnych projektów, nawet jeśli zalicytuję najniższą kwotę. Próbowałem licytować agresywnie. Próbowałem nawet licytować najniższą możliwą kwotę, aby uzyskać mój pierwszy projekt, ale nadal ludzie, którzy mają wyższe oceny, otrzymują projekt. To z kolei uniemożliwia mi uzyskanie jakiejkolwiek oceny, która uniemożliwia mi uzyskanie nowych projektów. Utknąłem w tym cyklu.


title: Synchronizacja w podanym kodzie

text: Miałem wywiad kilka tygodni temu i zostałem poproszony o napisanie kodu z Setters i Getters. Napisałem następujący kod; // Tylko przykład Class ABC{ private int num; public void setNum(int podanaNum){ this.num = podanaNum; } public int getNum(){ return num; } publiczne ABC(){ num = 0; } public static void main(String [] args){ ABC obiekt1 = new ABC(); ABC obiekt2 = nowy ABC(); obiekt1.setNum(5); System.out.println(obiekt1.getNum()); System.out.println(object2.getNum()); } } Powiedziano mi, że "object1" może zmienić wartość "object2.Num". Ale nie zgadzałem się z tym, uważam, że inny wątek, który ma dostęp do obiektu 2, może zmienić wartość obiektu2.Num, ale nie obiektu1. W powyższym przypadku zsynchronizowałbym metodę ustawiającą lub użyłbym zsynchronizowanego bloku wewnątrz metody ustawiającej podczas ustawiania/zmiany wartości, ale nie mogłem zrozumieć koncepcji obiektu1 zmieniającej wartość obiektu2.Num. Byłem po prostu ciekawy, czy czegoś mi brakuje. Jeśli tak, byłbym wdzięczny za wszelką pomoc dotyczącą tego samego.


title: Jak działa MVC z zasadą „Powiedz, nie pytaj”?

text: > Kod proceduralny pobiera informacje, a następnie podejmuje decyzje. Kod obiektowy > każe obiektom robić rzeczy. — **Alec Sharp** Tak więc, gdy widok chce wyświetlić informacje, które mają pochodzić z właściwości wyświetlanego modelu, czy obliczenia powinny być częścią modelu czy widoku? W idealnym przypadku widok powinien informować obiekt o potrzebnych mu informacjach, a model powinien wykonać obliczenia i zwrócić wynik. Ale teraz, czy model powinien zacząć mieć nowe metody za każdym razem, gdy nowy typ widoku chce wyświetlić dodatkowe informacje, które pochodzą z właściwości modelu? Czy takie metody powinny znajdować się w widoku czy w modelu? Czy w takich przypadkach powinniśmy podklasować model, dodać wymagane metody, a następnie przypisać go do widoku? Jestem deweloperem Objective-C, mogę również dodać kategorię do modelu dla widoku, ale w językach, w których nie mamy funkcji, w których możemy dodawać metody do obiektów i klas w czasie wykonywania, jaki jest idealny projekt? A może modele w MVC mają być tylko informacjami w parach klucz-wartość, a nie rzeczywistymi obiektami, które mają być przekazywane, gdzie widok odczytuje każdą wartość na podstawie gettera?


title: Problem z wdrażaniem witryny Asp.Net MVC 4 na platformie Azure

text: Jak wdrożyć witrynę internetową na platformie Azure, aby wyglądała dokładnie tak, jak po uruchomieniu na hoście lokalnym? Jest to bardzo prosta strona internetowa, którą stworzyłem zgodnie z samouczkami ASP.NET MVC4. Dodałem jednak nowy obraz tła, który się nie wyświetla. Czy muszę jeszcze coś zrobić, aby upewnić się, że wszystkie moje pliki są wdrażane? Oto kod, który „powinien” znajdować się na mojej stronie. To jest pone w moim rozwiązaniu. <head profile="http://gmpg.org/xfn/11"> <title>Rozwiązania marketingowe LOTUS</title> <meta http-equiv="Content-Type" content="text/html; charset=iso- 8859-1" /> <meta http-equiv="imagetoolbar" content="no" /> <link href="~/favicon.ico" rel="ikona skrótu" type="image/x-icon" /> <meta name="viewport" content="width=device-width" /> <link rel="stylesheet" href="Content/Site.css" type="text/css" /> <script type="text/ javascript" src="Scripts/jquery-1.4.1.min.js"></script> <script type="text/javascript" src="Scripts/jquery.jcarousel.pack.js"></script> < script type="text/javascript" src="Scripts/jquery.jcarousel.setup.js"></script> @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr ") </head> to jest to, co "właściwie" pokazuję na stronie zobacz kod źródłowy <head> <meta charset="utf-8" /> <title>Strona główna - Rozwiązania marketingowe LOTUS</title> <link href ="/favicon.ico" rel="skrót" t icon" type="image/x-icon" /> <meta name="viewport" content="width=device-width" /> <link href="/Content/css?v=Zxt_kvPMVcEtaCRbYJCSpGOy25BUARXyn8EetggjSF01" rel="arkusz stylów "/> <script src="/bundles/modernizr?v=qVODBytEBVVePTNtSFXgRX0NCejh9U_Oj8ePaSiRcGg1"></script> </head> wyraźnie, coś jest nie tak. Zawartość nie jest podobna! Udało mi się wyciągnąć to **CA0058 Błąd podczas uruchamiania analizy kodu CA0058 : Nie można znaleźć zestawu, do którego odwołuje się „DotNetOpenAuth.AspNet, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246”. Ten zespół jest wymagany do analizy i odwołuje się do niego: C:\Users\lotusms\Desktop\LOTUS MARKETING\ASP.NET\WebsiteManager\WebsiteManager\bin\WebsiteManager.dll, C:\Users\lotusms\Desktop\LOTUS MARKETING\ASP .NET\WebsiteManager\packages\Microsoft.AspNet.WebPages.OAuth.2.0.20710.0\lib\net40\Microsoft.Web.WebPages.OAuth.dll. [Errors and Warnings] (global)** **CA0001 Błąd podczas uruchamiania analizy kodu CA0001 : Wystąpił następujący błąd podczas odczytu modułu „Microsoft.Web.WebPages.OAuth”: Nie można rozwiązać odwołania do zestawu: DotNetOpenAuth.AspNet, Version=4.0 .0.0, kultura=neutralny, token klucza publicznego=2780ccd10d57b246. [Błędy i ostrzeżenia] (globalnie)** Czy to może mieć coś wspólnego z problemem?


title: Dlaczego nie ma opcji wdrażania prywatnego dla platformy .NET?

text: Oto powody, dla których można by tego chcieć: 1) Często nie używamy wszystkich bibliotek dll, ale zmuszamy klientów do zainstalowania całego frameworka .NET. Byłoby wspaniale po prostu wdrożyć potrzebne nam biblioteki dll. 2) Często chcemy aktualizować naszą aplikację i framework, ale czasami wymaga to ponownego uruchomienia komputera, ponieważ inne aplikacje go używają. 3) Pełna instalacja .NET zwykle zajmuje trochę czasu. Wdrożenie prywatne typu xcopy może być znacznie szybsze. Wydaje mi się, że mono pozwala na prywatne wdrożenie, co rozwiązuje wszystkie te problemy. Dziękuję


title: Rozwiązanie poszukujące problemu (nauka wzorców projektowych, szkoła)

text: Jestem zapisany do szkoły średniej i tego lata mamy za zadanie wykonać serię projektów, które powinny obejmować implementacje wzorców projektowych z kilku podręczników. Nasz pierwszy projekt dotyczy jednego z kilku wzorców architektury systemu i wydaje mi się, że nie mogę wymyślić projektu do pracy poza przykładami zawierającymi metafory obiektów, które nie działają. Co prawdopodobnie jest w porządku, biorąc pod uwagę ramy czasowe (2 projekty i raport tygodniowo). Mimo to jesienią i wiosną mamy więcej czasu, a ja chciałbym... no cóż, po prostu bardziej kreatywnie wymyślać projekty. **Zdolność do wymyślenia pewnego rodzaju rzeczywistego problemu do rozwiązania, który pasuje do konkretnego rozwiązania, bez wymyślania**, wydaje mi się trudną umiejętnością do rozwinięcia. Ponieważ jednak tak wielu programistów jest samoukami, pomyślałem, że zapytam: jak można znaleźć inspirację do projektów, ucząc się nowych umiejętności w sposób praktyczny? Edycja: to niekonstruktywne. Powyżej odważyłem się, co chciałem, ale dzisiaj myślałem o tym, że to naprawdę nie jest konieczne i zapomniałem, jaka miała być szkoła. To, do czego tak naprawdę się sprowadza, to jak najlepsze osiągnięcie celu w ramach wyznaczonych ograniczeń. Idealnie do celu, takiego jak zdobycie doświadczenia przy użyciu wzorca projektowego architektury systemu, chcesz opracować rzeczywisty system oprogramowania i więcej niż tydzień po godzinach na faktyczne projektowanie, rozwój i dokumentację. Nic z tego nie jest właściwie konieczne, jeśli chodzi o faktyczne osiągnięcie tego celu. Jeśli chodzi o ograniczenia szkolnego zadania, po prostu będę robił najlepiej z tym, co mam, co niestety będzie musiało być jakąś aplikacją konsoli hokeja z mnóstwem `<komponent> <verbed> <komponent >` linie wyjściowe i solidny raport wyjaśniający, jak osiągnąłem cel.


title: Czy zmiana licencji, na której wydano Linuksa, wymaga zgody wszystkich posiadaczy praw autorskich?

text: O ile wiem Linus posiada prawa autorskie do Linuksa. Przeglądając źródła jądra, widzę, że prawie każdy plik ma swoich właścicieli praw autorskich. Na przykład plik `module.c` w jądrze Linux zawiera: Copyright (C) 2002 Richard Henderson Copyright (C) 2001 Rusty Russell, 2002, 2010 Rusty A plik COPYING w katalogu głównym zawiera: UWAGA! Te prawa autorskie *nie* obejmują programy użytkownika, które używają usług jądra przez normalne wywołania systemowe - jest to po prostu uważane za normalne użycie jądra i *nie* mieści się w nagłówku "praca pochodna". Zauważ też, że prawa autorskie do GPL poniżej posiada Free Software Foundation, ale egzemplarz kodu, do którego się odnosi (jądro Linuksa) jest chroniony prawem autorskim przeze mnie i innych, którzy ją napisali. Zauważ też, że jedyną ważną wersją GPL, jeśli chodzi o jądro, jest _ta_ konkretna wersja licencji (tj. v2, nie v2.2 lub v3.x lub cokolwiek innego), chyba że wyraźnie zaznaczono inaczej. Linus Torvalds Jeśli więc Linus chciałby zmienić licencję, na której wydawany jest Linux, czy nie potrzebowałby zgody wszystkich posiadaczy praw autorskich, którymi są prawdopodobnie tysiące ludzi?


title: Czy powinienem przeanalizować szablon e-maila przed czy po umieszczeniu go w kolejce?

text: Mam aplikację internetową, która wysyła transakcyjne (wyzwalane) wiadomości e-mail do użytkowników. Skonfigurowaliśmy kolejkę wiadomości, do której aplikacja internetowa ma pisać, gdy musi wysłać wiadomość e-mail (powody najlepszych praktyk itp.). Pytanie, z którym się zmagam, to kiedy przetworzyć szablon wiadomości e-mail na tekst: 1. Przeanalizuj szablon i umieść całą treść wiadomości e-mail w kolejce * Zaleta: może utrzymać logikę biznesową i szablon blisko * Wada: więcej danych przewód do kolejki (treść wiadomości e-mail vs typ/identyfikatory itp.) 2. Przeanalizuj szablon w ramach przetwarzania kolejki (zanim zostanie wysłany do usługi transakcyjnej poczty e-mail) * Zaleta: mniej danych przesyłanych przez przewód do kolejki, mniej przetwarzanie w logice przesyłania wiadomości * Wada: procesor kolejki musi mieć logikę biznesową Podoba mi się opcja nr 1, ponieważ nie widzę, aby dane przesyłane przez sieć były zbyt duże, a utrzymywanie logiki wiadomości e-mail w centralnej lokalizacji ma bardziej logiczny sens z punktu widzenia programowania . Czy jest jakaś najlepsza praktyka w tej sytuacji?


title: Mistrz, niewolnik: wersja politycznie poprawna

text: Jakie są inne synonimy technologiczne dla relacji mistrz-niewolnik? Sytuacja to gałka, która steruje innymi gałkami, lub przycisk, który steruje innymi przyciskami.


title: Czy podczas przenoszenia kodu muszę przestrzegać oryginalnej licencji?

text: Jestem programistą iOS i ostatnio znalazłem się przy portowaniu kodu z kilku innych języków do różnych projektów, co skłoniło mnie do myślenia o licencjonowaniu kodu. Czy podczas przenoszenia kodu jest to uważane za „użycie” istniejącego kodu, czy też ponieważ niczego nie kopiuję i nie wklejam, czy kod jest nową jednostką?


title: Jakie wskazówki możesz zaoferować komuś przy przenoszeniu kodu?

text: Jakie rady (wskazówki, techniki, wskazówki itp.) masz dla kogoś, kto przenosi bibliotekę kodu z jednego języka na inny lub przepisuje ją, aby działała w innym kompilatorze, środowisku?


title: Architektura danych dla metryk dziennika zdarzeń?

text: W mojej usłudze występuje duża liczba zdarzeń użytkownika i chcielibyśmy robić takie rzeczy, jak „zliczanie wystąpień zdarzenia typu _T_ od daty _D_”. Staramy się podjąć dwie podstawowe decyzje: 1. Co przechowywać? Przechowywanie każdego zdarzenia a przechowywanie tylko agregatów * (styl dziennika zdarzeń) rejestruje każde zdarzenie i zlicza je później, a * (styl szeregów czasowych) przechowuje pojedynczą zagregowaną „liczbę zdarzeń _E_ dla daty _D_” dla każdego dnia 2. Gdzie do przechowywania danych * W relacyjnej bazie danych (szczególnie MySQL) * W nierelacyjnej bazie danych (NoSQL) * W płaskich plikach dziennika (gromadzonych centralnie przez sieć przez `syslog-ng`) Jaka jest standardowa praktyka / gdzie mogę przeczytać więcej o porównywaniu różnych typów systemów? * * * Dodatkowe szczegóły: * Całkowity strumień zdarzeń jest duży, potencjalnie setki tysięcy wpisów dziennie * Ale naszą aktualną potrzebą jest liczenie w nim tylko określonych typów zdarzeń * Niekoniecznie potrzebujemy dostępu w czasie rzeczywistym do surowe dane lub wyniki agregacji * * * IMHO, „rejestruj wszystkie zdarzenia do plików, przeszukuj je później, aby filtrować i agregować strumień” to dość standardowy sposób UNIX, ale moi rodacy z Railsów wydają się myśleć, że nic nie jest prawdziwe chyba że jest w MySQL.


title: Chcę kolejki rozproszonej. Nigdy wcześniej nie korzystałem z narzędzi innych firm

text: Potrzebuję mieć kolejkę zdublowaną na dwóch rozproszonych serwerach z WAN między nimi. Czy RabbitMQ pasuje do mojej sytuacji? A może powinienem zacząć od innego rozwiązania AMQP? Który? Lub nie AMQP? A co z Redisem? **Więcej szczegółów:** Skrypt na serwerze „A” wysyła polecenie „x” lokalnie. Skrypt na serwerze "B" również odbiera komendę "x" lokalnie. I odwrotnie z kolejną kolejką. Jeśli jest problem z dostępnością serwera B, nadal otrzymuje on komendę "x" nieco później, gdy staje się dostępny. Ale mój program nie musi tego oglądać. Broker kolejki musi kontrolować dostarczanie między maszynami.


title: Jaki jest właściwy sposób obsługi tego przepływu pracy w TFS?

text: Mój klient używa TFS i prosi ludzi, aby działali w ten sposób: * Deweloper w Indiach pisze pierwszą wersję roboczą kodu * Kod jest publikowany w obszarze roboczym (np. 10.1.1.1\TFSName Project:FromIndia Folder:\My. Assembly.Name) * Kod jest sprawdzany przez wewnętrznego pracownika * Aby zapewnić pełne zrozumienie kodu, kod jest kopiowany do nowego obszaru roboczego (np. 10.1.1.1\TFSName Project:InternalCode Folder:\My.Renamed.Assembly Now klient chce zezwolić Indiom na odwoływanie się do kodu znajdującego się w 10.1.1.1\TFSName InternalCode w celach wsparcia. Chcą również, aby zaproponowały zmiany w działającym kodzie {production}. Czy jest to efektywne wykorzystanie serwera TFS? Co jest lepsze zbliżać się?


title: Warstwa dostępu do aplikacji a warstwa dostępu do danych: wybór między różnymi „szybkimi” i „dużymi” sklepami obsługiwanymi przez protokół Redis

text: _podstawowa historia:_ Chcemy więc mieć rozproszoną pamięć podręczną dostępną dla wszystkich aplikacji. (Niewspółbieżne zapisy, współbieżne odczyty). W idealnym przypadku pamięć podręczna musi być trwała i przechowywana w pamięci RAM _(tak robi Redis..)_ , a starsze dane muszą być dostępne na żądanie, a całość nie może być zaimplementowana jako partycjonowanie/sharding na poziomie aplikacji (jest to uważane za złe, ponieważ taki kod byłby rozrzucony po całym projekcie). Z powodu krótkich ram czasowych projektu i innych powodów, wiele dziwnych rozwiązań jest tutaj przeglądanych/ocenianych; jednym z nich jest redis_fdw, Obcy Data Wrapper lub PostgreSQL. (Rozumiemy, że chociaż specyfikacje SQL/MED obejmują ogromną liczbę sytuacji, nie pasują do naszego scenariusza „szybkiej pamięci podręcznej”). są zgodne z protokołem. Pozwala to na zaimplementowanie „szybkiego” lub „dużego” magazynu (mamy zadanie ~20 GB i 10x do 100x większy zestaw tylko do odczytu historii). Tak więc należy podjąć decyzję o pobieraniu danych historycznych; jak w takiej sytuacji podjąć decyzję o zaimplementowaniu wyboru źródła danych: w warstwie aplikacji, czy w warstwie danych? (Przez warstwę danych mam na myśli rozwiązanie buforowania/HA podobne do twenproxy) Oczywiście, jeśli istnieją lepsze rozwiązania niż Redis/RDMBS lub Redis/edis (widły Erlanga Redisa z obsługą dużego zestawu danych na dysku), daj mi znać także.


title: Jak podejść do poważnego projektu F# bez znajomości C#?

text: Zasadniczo projekt, który chcę podjąć, to edytor SVG. Wolałbym używać WPF, ponieważ wtedy mogę wykorzystać XAML do układu aplikacji (ten projektant jest taki sprytny). Niestety, używam frameworka .NET dopiero od kilku miesięcy i nadal nie znam większości nazw klas. Celem było użycie F#, ponieważ jest to funkcjonalny język programowania, a rekursja F# i wspaniałe operacje na listach w połączeniu z krotkami będą działać dobrze w tym, co staram się osiągnąć. A celem jest użycie .NET ze względu na ogromną bibliotekę dostępnych i udokumentowanych klas z przykładami. Przyjrzałem się już temu pytaniu. Czy istnieje księga kanoniczna na temat F#? Ale odpowiedzi dotyczą tylko języka F# ogólnie i zakładamy, że znasz już C# , co nie jest dla mnie szczególnie przydatne. Najlepsza książka będąca odpowiedzią na powyższe pytanie to Programowanie funkcjonalne w świecie rzeczywistym: z przykładami w F# i C#. Jednak 3-gwiazdkowa amazon recenzja tej książki, choć dość surowa i być może przesadzona, prawidłowo ilustruje mój problem. > Jeśli jesteś zainteresowany programowaniem funkcjonalnym, ale nie jesteś > C# szukającym nauki F#, możesz spokojnie pominąć tę książkę. Szukałem online przykładów WPF F#, są tu i tam różne fragmenty kodu, ale nic istotnego ani nie demonstruje, że jest używany poza pojedynczym skryptem .fsx, i nic naprawdę na poziomie przedsiębiorstwa, a nawet co najmniej profesjonalnej klasy. Więc nawet Microsoft tak naprawdę nie ma wielu przykładów, jak robić rzeczy .NET w F#. Znalezione przeze mnie przykłady są zwykle tylko funkcjami unikalnymi dla języka F#. Spójrz na podstawowe i zaawansowane sekcje języka F#, a przekonasz się, że są one winne tylko nauczania składni. Na przykład MSDN na WPF dla klasy Line nie ma żadnych przykładów kodu w języku F#. Po przewinięciu w dół karty przykładowego kodu dla języka F# pojawia się tylko komunikat, że żaden przykład kodu nie jest obecnie dostępny lub ten język może nie być obsługiwany. Mając tak mało dostępnych przykładów kodu, trudno mi podjąć ten projekt. **Moje pytanie** Byłbym wdzięczny za pomoc w zrozumieniu, jak powinienem podejść do tego projektu za pomocą F#, gdy nie znam zbyt dobrze C#.


title: Czy powszechne jest używanie klas częściowych w celu osiągnięcia „modułowości”?

text: Niedawno spotkałem się z sytuacją w naszej bazie kodu, w której inny zespół stworzył „klasę boga” zawierającą około 800 metod, podzieloną na 135 plików jako klasę częściową. Zapytałem o to drugą drużynę. Podczas gdy moją instynktowną reakcją było wyrzucenie go z orbity, upierają się, że to dobry projekt, powszechna praktyka i że promuje „modułowość” i „łatwość implementacji”, ponieważ nowi programiści mogą korzystać z funkcjonalności bez prawie żadnej wiedzy o reszcie systemu. Czy to rzeczywiście powszechna praktyka, czy w jakikolwiek sposób dobry pomysł? Jestem skłonny podjąć natychmiastowe kroki, aby zniszczyć tę bestię (lub przynajmniej zapobiec jej dalszemu wzrostowi), ale jestem skłonny uwierzyć, że się mylę.


title: Czy jestem nadmierna inżynieria, jeśli uważam za zamierzone niewłaściwe postępowanie użytkownika?

text: Czy dodanie ochrony przed celowym wykroczeniem użytkownika (delikatnie mówiąc), jeśli szkoda, jaką może ponieść użytkownik, nie jest związana z moim kodem, jest przesadą? Dla wyjaśnienia udostępniam prostą usługę JSON RESTful taką jak ta: GET /items - do pobrania listy przedmiotów użytkownika PUT /items/id - do modyfikacji elementu POST /items - do dodania nowego elementu Sama usługa nie jest przeznaczona do użycia przez przeglądarkę, ale tylko z aplikacji firm trzecich, kontrolowanych przez użytkownika (takich jak aplikacje na telefon, aplikacja na komputer itp.). Ponadto sama usługa powinna być bezstanowa (tj. bez sesji). Uwierzytelnianie odbywa się za pomocą uwierzytelniania podstawowego przez SSL. Mówię o jednym możliwym "szkodliwym" zachowaniu, takim jak to: użytkownik wprowadza adres URL GET w przeglądarce (bez powodu, ale...). Przeglądarka prosi o uwierzytelnienie podstawowe, przetwarza je i przechowuje uwierzytelnienie dla bieżącej sesji przeglądania. Bez zamykania przeglądarki użytkownik odwiedza złośliwą witrynę internetową, która zawiera złośliwy skrypt JavaScript CSRF/XSRF, który wysyła POST do naszego serwisu. Powyższy scenariusz jest wysoce nieprawdopodobny i wiem, że z biznesowego punktu widzenia nie powinienem się zbytnio martwić. Ale w celu poprawy sytuacji, czy uważasz, że jeśli nazwa użytkownika/hasło są wymagane również w danych JSON POST, pomoże? A może powinienem całkowicie zrezygnować z Basic Auth, pozbyć się GET i używać tylko POST/PUT z informacjami autoryzacyjnymi? Ponieważ informacje pobierane przez GET mogą być również wrażliwe. Z drugiej strony, czy używanie niestandardowych nagłówków jest uważane za czystą implementację REST? Mogę usunąć Basic Auth i użyć niestandardowych nagłówków. W ten sposób można uniknąć przynajmniej ataku CSRF z przeglądarki, a aplikacje korzystające z usługi ustawią nazwę użytkownika/hasło w niestandardowym wrzosie. Złe dla tego podejścia jest to, że teraz usługa nie może być konsumowana z przeglądarki.


title: Etyka stojąca za otwieraniem i edycją pliku jar

text: Jaka etyka stoi za rozpakowaniem pliku jar z punktu widzenia branży, kiedy powiedzmy, że nie dano ci dorozumianej zgody na używanie i edycję? Nie chcę, żeby to było pytanie otwarte. Czy jest to nieetyczne i czy należy tego za wszelką cenę unikać? Czy można to wykorzystać jako „inspirację”? Dziękuję!


title: Dokumentacja automatyzacji testowania oprogramowania

text: Jakie typy dokumentów można wykorzystać przy opisie automatyzacji testowania oprogramowania (na dowolnym etapie, planowania automatyzacji, projektowania testów, implementacji, raportowania)? Czy istnieją standardowe rodzaje dokumentów? Czy ktoś mógłby podać jakieś przykłady i szablony dla różnych typów dokumentów? Jaka jest różnica między dokumentacją testów ręcznych a zautomatyzowaną?


title: Czy Entity Framework jest sposobem na naszą sytuację?

text: Mały przegląd tego, czym zajmuje się moja grupa… Pracuję w zespole programistycznym w dość dużej firmie ubezpieczeniowej. Odpowiedzialność mojej grupy to przede wszystkim budowanie aplikacji dla naszych pracowników. Rzeczy takie jak systemy śledzenia, aplikacje do planowania, katalogi kontaktów itp. Oczywiście mamy przyzwoitą ilość „udostępnionych danych”, do których zwykle odwołują się wszystkie aplikacje. Rzeczy takie jak stany, pracownicy i mnóstwo elementów, które odnoszą się do naszej konkretnej działalności (agenci, linie biznesowe, firmy oceniające itp.). Obecnie mamy zestaw wspólnego kodu, który wszystkie aplikacje mogą wykorzystać do pobrania większości wspólnych danych. Większość żądań, które otrzymujemy, wymaga albo poprawek w bieżących obiektach bazy danych, albo stworzenia wielu nowych obiektów bazy danych. Nasza grupa jest dość mała, ale prawdopodobnie nadal mamy 3-4 zestawy zmian w bazie danych przechodzących przez nasz system zarządzania zmianami w danym momencie i, w zależności od priorytetu, niektóre nowsze zmiany mogą przeskoczyć inne w drodze do produkcji. Rozumiem wszystkie korzyści płynące z EFL, ale mam też kilka obaw związanych z naszą konfiguracją: Ponieważ istnieje element współdzielonych danych, wydaje się, że sensowne byłoby posiadanie jednego modelu danych dla całej naszej bazy danych (która zawiera wszystkie obiekty dla wszystkich różnych zastosowań). Czy to bezpieczne założenie? A może możliwe jest zbudowanie oddzielnych modeli danych i ich wzajemne oddziaływanie? Na koniec potrzebujemy jednej klasy o nazwie „Pracownik” i chcemy, aby była ona stała w dowolnej aplikacji, więc wydaje się, że albo musimy stworzyć jeden mega Model danych, aby wszystkie aplikacje od A do Z miały dostęp do danych pracownika i wszystkie odwołują się do klasy Pracownik. Chyba że klasa może siedzieć w GAC DLL, a następnie każdy model danych może odwoływać się .... lub, jak prosiłem, oddzielne modele danych mogą ze sobą współdziałać. Następnie… jeśli zdecydujemy się na jeden mega model danych, jak trudne byłoby wprowadzenie przez różne osoby oddzielnych zmian do tego ujednoliconego modelu danych, a następnie przeniesienie go w górę przez system zarządzania zmianami? Widzę korzyści płynące z zastosowania takiej technologii w aplikacji silosowej ... szczególnie takiej przy minimalnej konserwacji ... ale trudno mi sobie wyobrazić, czy oszczędność czasu nadal będzie na dużą skalę z tonami konserwacji różnych modeli danych dzieje się ... wszystko w tym samym czasie. Każda udzielona rada byłaby bardzo mile widziana.


title: Czy istnieje kanoniczna książka na temat specyfikacji projektu funkcjonalnego?

text: Widziałem i czytałem sporo książek o projektowaniu oprogramowania (przy użyciu UML itp.) i innych o doświadczeniu użytkownika, GUI itp., ale szukam książek, które opisują proces, który ma miejsce przed tym wszystkim. Szukam rzeczy sprzed rozwoju. Jak opracować spójny i kompleksowy plan tego, co aplikacja ma robić funkcjonalnie, prowadząc do schematów blokowych i specyfikacji funkcjonalnej itp. Sądzę więc, że moje pytanie składa się z dwóch części: Czy istnieje książka, która jest de- facto standard opisujący najlepsze praktyki, metodologie projektowania i inne przydatne informacje dotyczące analizy wymagań funkcjonalnych? Co w tej książce czyni ją wyjątkową?


title: Czym są klasy abstrakcyjne i metody abstrakcyjne?

text: Dostałem kilka wyjaśnień, ale do tej pory nie jestem w stanie zrozumieć, czym są abstrakcyjne klasy i metody w Javie. Niektórzy mówili, że ma to coś wspólnego z bezpieczeństwem programu, inni mówili, że nic takiego nie jest. Nawet z książki Dietela i Dietela nie rozumiem jej celu. Kiedy, gdzie i dlaczego go używamy?


title: Jak tam pierwsze książki?

text: Nigdy nie czytałem żadnego z nich, ale ich styl uważam za interesujący i niepowtarzalny. Nie jestem pewien, czy warto dawać pieniądze/czas?


title: Jak uniknąć mikrozarządzania ze strony klienta? [Praca projektowa]

text: Witajcie koledzy projektanci, jeszcze raz potrzebuję waszej pomocy. Jak wszyscy wiecie z mojego ostatniego pytania, jestem nowy w branży projektowej (i niedawny absolwent). To okazuje się być przeszkodą w moim zawodzie. Klient, z którym teraz pracuję, nalega na zmianę wszystkiego, co mu przedstawiam. Pracuję nad przeprojektowaniem jego strony internetowej, wykonaniem nowych projektów broszur, wizytówek, nowego logo i nowej reklamy, która pojawi się w gazetach po zakończeniu pracy. Zacząłem od logo, ponieważ był to najbardziej podstawowy element każdej firmy. Zrobiłem wiele badań, poświęciłem dużo czasu na przemyślenie i przemyślenie tego, co reprezentuje firma, i wymyśliłem taki, który będzie reprezentował firmę w całości. Ponieważ jestem freelancerem, zwykle spotykam się z klientami we wtorek rano, aby pokazać im postępy, zmiany itp. I tu pojawia się problem. Mój klient odczuwa potrzebę zmiany wszystkiego, co kiedykolwiek zrobiłem. Kolor logo, jego rozmiar, czcionka (chciał mieć czcionkę papirusową i nie dał mu do zrozumienia, dlaczego należy tego unikać) i tak dalej. To dopiero początek problemu. Kiedy kończymy dyskusję, pokazuje go swojej żonie (słodkiej damie po trzydziestce) i ich czwórce dzieci (17, 13, 10 i 8 lat) i każde z nich ma swoje zdanie i zmienia zdanie i wysyła do mnie e-maile - zmuszając mnie do przerobienia wielu rzeczy. Teraz przeczytałem problem z królową i kaczką i tym podobne, a nawet próbowałem raz dodać "kaczkę", ale odpalił, gdy klient się trząsł i obwiniał mnie o brak sensu projektowego. Jak więc przekonać go, żeby pozwolił mi wykonywać moją pracę? czy jest jakiś artykuł w tej sieci, który mógłbym mu nakłonić do przeczytania, który przekaże mu rację? zapewniam cię, on myśli, że jest ogółem społeczeństwa i jeśli mu się podoba, publiczność też to lubi, dlatego trzyma mnie jako zakładnika swoich pragnień. Dziękuję Ci. edit: przeczytałem też kilka artykułów, takich jak te o smashing magazine, ale wszystkie są z punktu widzenia projektantów stron internetowych, a nie dla klientów. Nie chcę pokazywać takich artykułów moich klientów. Dziękuję.


title: Raport o awariach i błędach dla programisty [z perspektywy użytkownika]: Kilka pytań

text: Mam kilka pytań dotyczących awarii lub zgłaszania błędów użytkownikowi. Rozwijamy stronę internetową i klientów mobilnych, w których umożliwiamy naszym użytkownikom zgłaszanie wszelkich błędów i awarii za pośrednictwem poczty e-mail. Wymagamy od użytkownika wysłania wiadomości e-mail ze swojego konta e-mail, aby można było go zidentyfikować. Oto kilka pytań dotyczących tego: 1. Kiedyś wysyłaliśmy ostatni ślad stosu java, gdy użytkownik nacisnął przycisk "wyślij raport o błędzie". Ponieważ zawiera tylko szczegóły techniczne, których użytkownik może nie rozumieć lub których nie obchodzi, czy konieczne jest pokazanie użytkownikowi tego stacktrace? 2. Co jeśli użytkownik obawia się o prywatność? Czy dobrą praktyką jest zbieranie śladów awarii i nietypowych zachowań, mając na uwadze prywatność użytkownika? Jeśli tak nie jest, jakie są inne alternatywy? 3. W przypadku urządzeń mobilnych, co jeśli użytkownik chce wysłać raport o błędach na serwer, ale nie ma połączenia sieciowego, czy konieczne jest posiadanie rejestru tego typu typowych błędów, które nie są związane z aplikacją?


title: Zaawansowane wzorce projektowe JavaScript

text: Poszukuję książek, zasobów internetowych lub sugestii dotyczących strukturyzowania dużych projektów lub budowania frameworka w JavaScript. Nie szukam książek wyjaśniających, jak działa dziedziczenie lub zamknięcia. Bardziej szukam wzorców projektowych i technik do organizowania (i rozwijania) złożonych aplikacji. W tej chwili znalazłem: * ten stary temat Zaawansowane wskazówki dotyczące javascript * pdf Budowanie frameworka JavaScript * artykuł Zróbmy framework: Architektura bibliotek Jakieś inne sugestie?


title: Node.js Czy serwlety?

text: Dużo słyszałem i czytałem o języku po stronie serwera Javascript, tj. Node.js, i widziałem wiele porównań na korzyść Node. Nie rozumiem, co czyni go lepszym lub szybszym, ani jak odnosi się do czegoś tak dojrzałego jak Java Servlets. Ale Serwlety są zbudowane na bazie wielowątkowego języka programowania, w przeciwieństwie do Node.js. Jak więc node.js może być szybszy? Jeśli załóżmy, że 1000 000 użytkowników pyta o rekordy bazy danych, to Node.js nie powinno być wolniejsze niż Servlety. Również serwlety nie mają lepszego bezpieczeństwa w porównaniu z Node.js?


title: Serwer wysyłający dane do przetworzenia do klientów

text: Mniej więcej rok temu wpadłem na pomysł wykorzystania komputerów moich znajomych do przetwarzania moich danych, więc zaprogramowałem aplikację serwera gniazd z `boost::asio` i część klienta dałem moim znajomym. Kiedy się łączą, wysyłają do serwera (mój komputer) wiadomość zawierającą specyfikacje ich komputera (dostępne rdzenie, pamięć), na tej podstawie aplikacja serwera decyduje, ile danych może obsłużyć w danym momencie i za każdym razem, gdy kończą przetwarzanie partii, wysyłają "gotowy na więcej wiadomości" do mojego serwera, a aplikacje klienckie wciąż wysyłają dane o stanie procesu, a wiele obsługi odbywa się w tle, cokolwiek dzieje się na komputerach klienckich, zależy od serwera właściwa decyzja, jeśli połączenie z maszyną kliencką zostanie utracone i nie było z powrotem w ciągu 5 minut, serwer śledzi dane, które zostały wysłane do tej maszyny i pyta o to za każdym razem, gdy klient ponownie się połączy. Zacząłem ten projekt i miałem tylko podstawową wiedzę z zakresu programowania sieciowego i nie czytałem o żadnych wzorcach, które można by użyć i po prostu użyłem swoich odwagi, ale uznałem to za bardzo przydatne, chciałbym to rozwinąć, ale chcę wiesz, czy istnieje znany wzorzec wykonywania tego samego przy użyciu gniazd TCP, jeśli tak, jak się nazywa ten wzorzec? Myślę o nim jako o superkomputerze, którego komponenty są rozsiane po całym świecie. Więc byłbym wdzięczny za pewne zasoby dotyczące tego rodzaju rzeczy.


title: Czy Ułatwienia dostępu w sieci mają coś do zrobienia w językach po stronie serwera?

text: Chcę zrozumieć, w jaki sposób eksperci ds. dostępności sieci radzą sobie z witrynami internetowymi, jeśli chcą potwierdzić, że te witryny są zgodne z wytycznymi dotyczącymi ułatwień dostępu. Czy muszą rozumieć jakikolwiek język po stronie serwera? czy tylko HTML i CSS? Na przykład, jeśli istnieje strona internetowa firmy, która świadczy usługi dla innych witryn, aby zapewnić im dostępność, czy muszą oni patrzeć na kod po stronie serwera, czy tylko na wyjściowy kod HTML i CSS?


title: Ładowanie za godzinę/projekt

text: Wiąże się to z pytaniem, które zadałem wcześniej - Jak zakończyć relację z klientem bez wkurzania go? Jakie są Twoje obowiązki, gdy ładowanie godzinowe vs ładowanie według projektu? Jeśli zgadzasz się na podjęcie projektu, podaj przybliżone oszacowanie, że praca nad nim może potrwać 10 dni i pobierz X GBP za godzinę – czy jesteś zobowiązany do pracy za darmo po upływie tych 10 dni i nadal nie radzisz sobie zakończyć swój projekt z powodu nieprzewidzianych problemów? Co się stanie, jeśli dostarczyłeś projekt, ale znaleziono błędy - czy powinieneś naprawić te błędy za darmo, jeśli minęło 10 dni, czy powinieneś obciążyć klienta? Również w przypadku powyższego projektu, jaki powinien być wynik, gdy zaczniesz projekt, ale po 10 dniach z jakiegokolwiek powodu musisz się poddać i powiedzieć klientowi, że nie możesz już tego robić? Zdaję sobie sprawę, że nie ma to nic wspólnego z budowaniem Twojej reputacji i relacji z klientem, ale czy jesteś zobowiązany do zwrotu pieniędzy, które Ci wypłacono, czy po prostu dostarczasz pół/prawie ukończony kod źródłowy i pomagasz znaleźć kogoś innego, kto go uzupełni? Powodem, dla którego zadaję powyższe pytania, jest to, że jestem bardzo nowym freelancerem i chciałbym wiedzieć, jak radzić sobie z powyższymi sytuacjami, jeśli kiedykolwiek się pojawią. Dziękuję!


title: Za dużo technologii… za mało czasu, aby nauczyć się ich wszystkich

text: Lubię uczyć się wszystkiego o technologiach komputerowych, ale jeśli spojrzysz na popularną listę tagów StackOverflow, na przykład: ![Popularne tagi Stack Overflow](http://i.stack.imgur.com/yfbDk.png) Nie ma tak na ziemi kiedykolwiek je wszystkie zrozumiem. Mniej więcej wiem, o co chodzi (oprócz ruby-on-rails, ajax, javascript, php i jquery), ale _szczegółów_ nie znam, chociaż chciałbym, **tylko mieć pomysł jak to działa i do czego jest przydatne**. Więc myślę, "zawęźmy to". Interesuję się tworzeniem stron internetowych, ale nie zajmuję się tym, więc w wolnym czasie potrzebuję się uczyć. Jeśli jednak przejdziesz do tego postu Jak zacząć tworzyć strony internetowe, zobaczysz, że ludzie sugerują **ogromną** liczbę technologii: PHP, JavaScript, MySWL, DJango, Ruby, HTML, CSS, ASP.NET, jQuery I… cóż, nawet nie wiem, o co chodzi w każdej technologii, ani nawet **jak się do siebie odnoszą**. (Dlaczego ludzie sugerują używanie PHP + MySQL przez cały czas?) Więc moje pytanie brzmi: biorąc pod uwagę konkretny temat (na przykład "tworzenie stron internetowych") i mając konkretny problem, a może po prostu _pomysł_ ("Chcę zbudować witryna, która prosi anonimowych użytkowników o wpisanie danych, a następnie pozwala innym użytkownikom ocenić te dane”, jak mam zacząć? Skąd mam wiedzieć, jaka technologia jest najlepsza dla mojego problemu? Nie mogę po prostu zacząć od, powiedzmy, PHP, a potem uświadomić sobie w połowie „och, czekaj, ta technologia jest bezużyteczna dla mojego problemu”.


title: W jakiej kategorii należy umieścić WPF w CV?

text: Aktualizuję swoje CV i zastanawiam się, w jakiej kategorii najlepiej umieścić WPF. Ponieważ tak naprawdę nie rozpoznałbym go jako języka programowania takiego jak C# lub coś takiego. Ogólny opis to: > Windows Presentation Foundation (lub WPF) to oprogramowanie komputerowe > podsystem graficzny do renderowania interfejsów użytkownika w aplikacjach opartych na systemie Windows >. Mam nadzieję, że jest to właściwe miejsce, aby zapytać. Z góry dziękuję.


title: Czy powinieneś dokonać refaktoryzacji istniejącego kodu, który nie jest zepsuty w projekcie skupiającym się na nowych funkcjach?

text: Biorąc pod uwagę mały projekt, który ma na celu dodanie nowej funkcjonalności do aplikacji, wprowadzone zmiany dotykają istniejącego kodu, polegającego na aktualizacji go w niektórych obszarach. Podczas implementacji znalazłem kilka z tych zaktualizowanych kodów, które mają kandydatów do refaktoryzacji. Czy jest to odpowiedni czas na refaktoryzację, która z kolei wymagałaby testów regresji dla tych komponentów, których to dotyczy (a tym samym możliwe wprowadzenie zakresu, który nie był pierwotnie częścią projektu)? A może powinienem odroczyć, uzupełnić funkcjonalność i być może mieć osobny projekt do refaktoryzacji (chociaż jestem trochę niezdecydowany, ponieważ użytkownicy biznesowi mogą nie w pełni sponsorować projektu, który nie dodaje żadnej funkcjonalności, chyba że cenią sobie możliwość utrzymania kodu...)?


title: Techniki oderwania się od ziemi w dowolnym języku

text: Kiedy zaczynam uczyć się nowego języka, mam kilka prostych implementacji, które lubię uzupełniać, aby zapoznać się z językiem. Obecnie piszę: 1. **Fibonacci i/lub silnia**, aby opanować pisanie i wywoływanie metod oraz podstawową rekursję 2. **Najkrótsza ścieżka Djikstry** (z typem węzła), aby poradzić sobie z tworzeniem klasy (lub jakikolwiek odpowiednik w języku) z metodami i właściwościami, a także używanie ich w nieco bardziej złożonym kodzie. Zastanawiałem się: **czy ktoś jeszcze ma jakieś techniki lub narzędzia, których lubi używać, gdy zaczyna się w nowym języku?** Zawsze szukam nowych rzeczy, które mógłbym dodać do mojej „rutyny startowej”.


title: Algorytm do obliczania terminów spotkań?

text: Mam dziwną sytuację, w której klient chciałby skrypt, który automatycznie ustawia tysiące spotkań w ciągu kilku dni. Trudne jest to, że spotkania odbywają się w różnych strefach czasowych Stanów Zjednoczonych i podczas generowania dat i godzin spotkań dla każdego rekordu muszę wziąć pod uwagę lokalną strefę czasową klienta. Zasady spotkań: * Spotkania powinny być umawiane od 8:00 do 20:00 standardowego czasu wschodniego, z przerwami w godzinach 12:00-20:00 i 4P-6. To pozostawia w sumie 8 godzin dziennie na umawianie spotkań. * Wizyty należy umawiać w odstępie 5 minut. 8 godzin 5-minutowych interwałów to 96 wizyt dziennie. * Jednocześnie będzie 5 użytkowników obsługujących spotkania. 96 spotkań dziennie pomnożone przez 5 użytkowników daje 480, więc maksymalna liczba spotkań, które można ustawić na dzień, to 480. * Teraz trudne wymaganie: spotkania są ograniczone do godziny 8:00-20:00 w **lokalnej strefie czasowej konsumenta**. Oznacza to, że najwcześniejszy dozwolony czas każdego spotkania różni się w zależności od strefy czasowej konsumenta: * Wschodnia: 8A * Środkowa: 9A * Góry: 10A * Pacyfik: 11A * Alaska: 12P * Hawaje lub nieokreślona: 2P * Arizona: 10A lub 11A na podstawie aktualnego czasu letniego Zakładając, że zestaw danych może zawierać kilka tysięcy rekordów, a każdy rekord będzie zawierał wartość strefy czasowej, czy istnieje algorytm, którego mógłbym użyć do określenia daty i godziny dla każdego rekordu, który odpowiada powyższym regułom?


title: Najlepszy sposób radzenia sobie z systemem bez akceptacji użytkownika / fazy testowania

text: Historycznie uchodziło mi na sucho wprowadzanie drobnych zmian w wewnętrznym systemie helpdesk na stosie LAMP i robienie kopii zapasowej przed edycją. Nie ma to fazy akceptacji / testowania przez użytkownika i pracuję bezpośrednio nad plikami .php na żywo. Jednak teraz pojawił się wymóg, który będzie wymagał trochę więcej kodowania, i oczywiście nie jestem szczególnie zadowolony z wprowadzania tych zmian bez frameworka, który mnie wspiera. Jaka byłaby najlepsza droga naprzód? Przypuszczam, że mógłbym po prostu zrobić kolejną kopię zapasową.


title: Czy powinienem spróbować ćwiczyć problemy w montażu?

text: Patrzyłem na Project Euler Problem 48: > Szereg, 11 \+ 22 \+ 33 \+ ... + 1010 = 10405071317. > > Znajdź ostatnie dziesięć cyfr szeregu, 11 \+ 22 \+ 33 \+ ... + 10001000. W Pythonie mogę to zrobić za pomocą jednej linii: sum((x**x for x in xrange(1,1001)) Ale odpowiednikiem tego asemblera byłoby 100 linii i prawdziwe wyzwanie. Robię niektóre z tych łamigłówek w asemblerze, aby uzyskać wgląd w programowanie niskopoziomowe i zrozumieć, jak faktycznie działa komputer?


title: W jaki sposób prawa autorskie odnoszą się do plików nagłówkowych kodu źródłowego?

text: Wygląda na to, że słyszałem, że pliki nagłówkowe nie są objęte prawami autorskimi, ponieważ można je zapisać tylko w jeden sposób (jak lista składników lub faktów). Tak więc plik nagłówkowy dla określonej biblioteki DLL zawsze będzie wyglądał tak samo, gdy zostanie napisany w danym języku programowania. Niestety nie mogę znaleźć żadnych zasobów, aby to zrobić. Jeśli więc dostawca dostarcza SDK z nagłówkami w jednym języku programowania, a następnie te nagłówki są tłumaczone na inny język programowania przez stronę trzecią. Czy firma zewnętrzna potrzebuje zgody dostawcy na dostarczenie tłumaczenia nagłówka? Kto jest właścicielem praw autorskich do tłumaczenia? Czy nie jest to praca pochodna wciąż będąca własnością sprzedawcy, czy też nie ma praw autorskich, jak lista składników? Czy różni się to w zależności od jurysdykcji?


title: Dlaczego mamy tendencję do zbytniego komplikowania rzeczy?

text: Fakt, że zasady takie jak KISS i YAGNI są tak popularne, wyraźnie świadczy o naszej skłonności do zbytniego komplikowania. Czy ta skłonność jest częścią naszej natury, czy częścią naszej kultury?


title: Licencjonowanie oprogramowania dla fragmentów kodu wielokrotnego użytku

text: Dość regularnie napotykam problemy, które zostały już rozwiązane przez projekty open source. Powiedzmy, tylko dla przykładu, że dodaję funkcjonalność do oprogramowania open source, które pozwala na zawijanie wierszy niektórych informacji w terminalu. Aby to zrobić, musi znać szerokość terminala użytkownika. libuv (warstwa platformy Node.JS) już rozwiązał problem (pod *nix i Windows!) (tak samo jak wiele innych projektów, FWIW). Okazuje się, że libuv jest licencjonowany na podstawie czegoś, co wygląda podejrzanie jak licencja MIT: >> Copyright Joyent, Inc. i inni współtwórcy Node. Wszelkie prawa > zastrzeżone. Niniejszym udziela się nieodpłatnie każdej osobie > uzyskania kopii tego oprogramowania i powiązanych plików dokumentacji > ("Oprogramowanie"), do korzystania z Oprogramowania bez ograniczeń, > w tym bez ograniczeń prawa do używania, kopiowania, modyfikować, łączyć, > publikować, rozpowszechniać, udzielać sublicencji i/lub sprzedawać kopii Oprogramowania, > oraz zezwalać na to osobom, którym Oprogramowanie jest dostarczane, > z zastrzeżeniem następujących warunków: > > Powyższa informacja o prawach autorskich i niniejsza informacja o zezwoleniu powinna być > zawarta we wszystkich kopiach lub istotnych częściach Oprogramowania. > > OPROGRAMOWANIE JEST DOSTARCZANE "TAK JAK JEST", BEZ JAKICHKOLWIEK GWARANCJI, > WYRAŹNYCH LUB DOROZUMIANYCH, W TYM MIĘDZY INNYMI GWARANCJI WARTOŚCI HANDLOWEJ, PRZYDATNOŚCI DO OKREŚLONEGO CELU I NIENARUSZANIA PRAW. > W ŻADNYM WYPADKU AUTORZY LUB POSIADACZE PRAW AUTORSKICH NIE PONOSZĄ ODPOWIEDZIALNOŚCI ZA JAKIEKOLWIEK ROSZCZENIA, SZKODY LUB INNĄ ODPOWIEDZIALNOŚĆ, CZY NA TEMAT UMOWY, > CZYNNEGO LUB INNEGO, WYNIKAJĄCE Z OPROGRAMOWANIA LUB W ZWIĄZKU Z > INNE CZYNNOŚCI W OPROGRAMOWANIU. Czy istnieje właściwy (legalny i pełen szacunku) sposób wykorzystania logiki rozmiaru okna z libuv w innym projekcie? Oto opcje, które przychodzą mi do głowy: 1. Nic nie jest wymagane, ponieważ nie stanowi to „istotnej części Oprogramowania” (ale uwzględnienie przypisania w kodzie źródłowym byłoby miłe). 2. Pełna kopia licencji powinna być zawarta w kodzie źródłowym. 3. Pełna kopia licencji powinna być zawarta w kodzie źródłowym i rozpowszechniana z plikami binarnymi. ### Bonusy: 1. Co jeśli projekt docelowy ma zamknięte źródło? 2. Co jeśli pożyczony kod zostanie mocno zmodyfikowany (teraz lub w przyszłości)? 3. Jaki jest najlepszy sposób dla autorów otwartego kodu źródłowego na zachęcanie do ponownego wykorzystywania jego fragmentów przez innych programistów, z rozsądnymi ograniczeniami (np. wymaganie przypisania autorstwa w kodzie źródłowym, ale nie wymaganie, aby licencja była rozpowszechniana z plikami binarnymi, które go zawierają )?


title: Jak zaimplementować wieloplatformowe przeciąganie i upuszczanie?

text: Właśnie znalazłem wideo online, które pokazuje pliki przeciągane z komputera Mac na komputer PC i odwrotnie. Tworzę aplikację do tworzenia kopii zapasowych i synchronizacji i chciałbym zobaczyć, czy mogę to zaimplementować. Jak to się dzieje? Jakie biblioteki są dostępne, aby to zrobić i jakie masz doświadczenia z wdrażaniem tego? Czy są jakieś problemy z włączeniem takiej funkcjonalności?


title: Dobra biblioteka do łączenia śladów stosu .net

text: Obecnie zgłaszam moje wyjątki produkcyjne do bazy danych mysql, gdzie w większości zbierają kurz. Problem, z którym się zetknąłem, polega na grupowaniu śladów stosu. Chciałbym móc zobaczyć rodzaj agregacji śladów stosu, które są takie same, aby móc je wykorzystać w przepływie pracy. Wiem, że jednym problemem jest to, że otrzymuję ślady stosu w różnych językach, co odrzuca rzeczy, w przeciwnym razie po prostu wykonałbym grupę za pomocą polecenia sql. Czy ktoś zna jakieś biblioteki, które mogłyby mi w tym pomóc? Dopóki mam coś, co mogę umieścić w kolekcji śladów stosu i uzyskać wynik, wszystko jest w porządku. Nie potrzebuję żadnej bezpośredniej interakcji z sql, raportowania ani niczego w tym rodzaju (ale przyjmę wszelkie sugestie, które macie) Dzięki


title: Jakie podejścia należy wziąć pod uwagę pod kątem doświadczenia użytkownika w asp.net mvc 4?

text: Jestem nowym programistą ASP.NET MVC. Zrobiłem obszernie formularze internetowe asp.net i użyłem Ajax Control Toolkit i paneli aktualizacji, aby zapewnić płynniejszą obsługę. Jakie paradygmaty powinienem wziąć pod uwagę z punktu widzenia doświadczenia użytkownika w asp.net mvc 4? Zauważyłem kilka podejść, od prostego wstrzykiwania widoków częściowych przez jQuery aż do aplikacji jednostronicowych. Wydaje się, że w ASP.NET MVC 4 jest również zapiekany Ajax. Jakie są preferowane podejścia do linii aplikacji biznesowych? Gdzie wskazałbyś nowego programistę MVC do tworzenia responsywnych interfejsów użytkownika? Jakie są kompromisy różnych podejść?


title: Czy warunki post rutyny są podzbiorem warunków wstępnych?

text: Jak mówi tytuł. Warunki post procedury muszą być podzbiorem warunków wstępnych dla procedury? Sposób, w jaki rozumiem warunki końcowe, jest taki, że są one całkowicie niezależne od warunków wstępnych, więc moje rozumienie prowadzi mnie do myślenia, że nie są one podzbiorem warunków wstępnych. Każdy wkład byłby mile widziany.


title: dechex(4000) - Dlaczego nie jest podpisany?

text: Dlaczego `dechex(4000)` PHP nie zwraca podpisanej wartości szesnastkowej? Zwraca: fa0 W przeciwieństwie do: 0xfa0 I czy `signed` jest właściwym terminem do opisania tego problemu? A może istnieje lepszy termin na opisanie części „0x”? Czy to się nazywa prefiks?


Jak moja aplikacja internetowa powinna radzić sobie z typowymi błędami, takimi jak nieprawidłowe hasło, limit czasu sesji itp.? Mam klasę o nazwie Hotmail, która zawiera różne metody, takie jak logowanie, wylogowanie itp. Aby zilustrować zamieszanie, mam metodę logowania, która loguje użytkownika do Hotmaila za pomocą mojego oprogramowania. Metoda logowania zwraca obiekt HttpWebResponse. Ale w ramach metody logowania może się zdarzyć dowolna liczba rzeczy, takich jak wprowadzenie błędnych danych uwierzytelniających lub przekroczenie limitu czasu. Mam pewne wątpliwości co do tego jak i gdzie radzić sobie z takimi błędami. W przypadku wprowadzenia błędnych poświadczeń lub przekroczenia limitu czasu zwrócenie obiektu HttpWebResponse byłoby bezcelowe lub czasami niemożliwe. Jaki byłby najlepszy sposób na poradzenie sobie z takimi błędami? Czy powinienem utworzyć niestandardowe wyjątki, aby kod wywołujący metodę mógł sprawdzać takie błędy i obsługiwać je? Jaki jest konwencjonalny sposób radzenia sobie z tego rodzaju błędami, ponieważ jestem pewien, że jest to powszechny punkt nieporozumień?


title: Pomaganie młodszym programistom w pokonaniu ich niedociągnięć?

text: Jakie masz wspólne zastrzeżenia dotyczące młodszych programistów, którzy dołączają do Twojego zespołu lub z którymi musisz współpracować? Oczywiście są niedoświadczeni, więc nie można oczekiwać, że będą wiedzieć wszystko, ale jakich umiejętności często w niewytłumaczalny sposób brakuje – i jak konkretnie możemy im pomóc w budowaniu tych brakujących umiejętności? Nie mam na myśli umiejętności interpersonalnych, takich jak „słuchanie rad”, mam na myśli kwestie techniczne, takie jak (jeśli dotyczy): * „nigdy nie robiłeś SQL?” * „Nigdy nie napisałeś testu jednostkowego?” * 'nie wiesz, jak korzystać z wiersza poleceń systemu Unix?' Rzeczy, których _robi_ oczekujesz - chciałbym poznać Twoje spostrzeżenia i techniki uczenia nowych programistów, jak ominąć te specyficzne niedociągnięcia.


title: Dlaczego tak trudno jest wiedzieć, gdzie używać interfejsów, ogólnych w projektowaniu programów?

text: Próbuję nauczyć się C# z serii head first, dodatkowo konsultuję się także z innymi książkami, takimi jak Pro C# Andrew Tolsona. Teraz chodzi o to, że doskonale rozumiem interfejs, składnię generyczną i mogę go również używać w programach podanych w ćwiczeniach. To, co jest dla mnie trudne, to używanie tych koncepcji we własnych programach. Na przykład pewnego dnia tworzyłem klienta zarządzającego kontem na Twitterze i pomimo moich najlepszych starań nie byłem w stanie użyć żadnego z wyżej wymienionych pojęć w kodzie. Miałem nawet trudności z robieniem przydatnych zajęć. Jakie są wskazówki, których mogę użyć, aby zdecydować, jakie klasy muszę utworzyć dla mojego programu, zakładając, że znam składnię _jak_ utworzyć klasę, ale nie wiem, _kiedy_ to zrobić?


title: Jakie są praktyczne zastosowania usług Windows?

text: Jestem nowy w pracy z usługami Windows. Chociaż nauczyłem się tworzyć usługi Windows w VS2010, chciałbym poznać kilka praktycznych sposobów wykorzystania usług Windows? Próbowałem googlować, mając na uwadze bieżący kontekst, tylko po to, aby znaleźć więcej samouczków na temat tworzenia usług Windows. **EDYTUJ w ofercie Bounty:** Wszystkie odpowiedzi są świetne, ale szukałem więcej **praktycznych przykładów** na temat usług Windows i ich implikacji? Pomoże to programistom wiedzieć, kiedy należy ich używać w studium przypadku.


title: Dlaczego warto korzystać z biegaczy testowych?

text: Obecnie projektuję zautomatyzowany framework testujący do testowania systemów wbudowanych na wbudowanym systemie Linux. Istnieje stary system, ale jest on szczególnie trudny w użyciu, głównie dlatego, że nie został zaprojektowany jako framework i został pierwotnie zaprojektowany do testowania tylko jednego produktu. Oznacza to, że framework zmienia się wraz z każdym nowym produktem do testowania, co zajęłoby dużo czasu spędzonego na zrozumieniu, gdzie i jak zmodyfikować system. Teraz otrzymałem możliwość stworzenia nowego systemu od podstaw, w celu uczynienia go znacznie łatwiejszym w użyciu i dużo bardziej intuicyjnym. Jedną z rzeczy, które zauważyłem zarówno w starym systemie, jak i innych systemach testowych, z których korzystałem, był pomysł skonfigurowania wszystkich testów i warunków weryfikacji, a następnie **a następnie** uruchomienie testu tak, aby konfiguracja i uruchomienie testu były dwa różne ścieżki, które następowały sekwencyjnie. Jedną z wad jest to, że wszelkie instrukcje drukowania wystąpiłyby poza ścieżką przepływu rzeczywistego testera, więc drukowanie nieudanych zmiennych musi być jakoś dodane do testera. Teraz, kiedy to na mnie spada obowiązek przeprojektowania systemu. Zastanawiam się, jakie dodatkowe korzyści przynosi przejście z architekturą w stylu uruchamiania testów zamiast prostego konfigurowania, ze sprawdzaniem zmiennych i raportowaniem wszystkich w tym samym czasie.


title: Ustanowienie API zapewniającego użytkownikom końcowym dostęp do wielu typów baz danych

text: # Pytanie i kontekst Obecnie pracuję nad projektem, w którym głównym pytaniem jest, w jaki sposób wstawić API między bazą danych a użytkownikami końcowymi, którzy mogą tworzyć własne aplikacje/skrypty, które będą współpracować z bazą danych lub na niej? Typ bazy danych, z którym pracuję, to Postgresql, a ten projekt jest autorski, więc użytkownicy końcowi to użytkownicy z innych grup programistycznych. # Cele To, co chcę spełnić, to: * Unikaj szerokiego interfejsu. * Wymagaj uwierzytelnienia z aplikacji, która ma korzystać z interfejsu API — zapewnij użytkownikowi końcowemu pojedynczy unikalny token lub klucz, aby uzyskać dostęp do aplikacji. Brak zarządzania użytkownikami/hasłem. * Masz możliwość otwarcia - nie jest wymagane uwierzytelnianie. * Zezwalaj użytkownikom na tworzenie i odczytywanie rekordów. * Ogranicz użytkownikom usuwanie i aktualizowanie istniejących rekordów. * (Opcjonalnie) Śledź, kto korzysta z interfejsu API - liczbę żądań, rekordów itp. * (Opcjonalnie) Śledź ilość czasu spędzonego na wypełnianiu żądania. # Trochę myśli Moją pierwszą myślą było ustanowienie API RESTful poprzez zbudowanie własnego serwletu do obsługi żądań i oczywiście dostosowanie go do moich celów. Mam jednak wrażenie, że istnieje już wiele wersji tego koła, więc chciałbym uniknąć wymyślania go na nowo. Dodatkowym pytaniem do tego byłoby, jak nazywa się ten rodzaj API/warstwy (oprócz DAL)? # Aktualizacja Jakie byłyby korzyści z wprowadzenia wspólnego API, gdyby istniało wiele baz danych różnych typów, np. postgres, ms sql, oracle itp.?


title: Ile średnio doświadczenia powinien mieć programista Sr., aby być kompetentnym w zakresie frameworka lub biblioteki?

text: Jeśli jesteś starszym programistą z, powiedzmy, ponad 8-letnim doświadczeniem, ile czasu spędzonego na programowaniu jest przeciętnie uzasadnione dla kompetencji? W szczególności praca z jakąś biblioteką lub frameworkiem powiązanym z podstawowym językiem, z którym pracowali. Na przykład 2 lata Spring lub Hibernate dla programisty java. Rozumiem, że jest to oparte na złożoności zestawu narzędzi, frameworku lub biblioteki, plus kompetencjach poszczególnych programistów, jednak jestem pewien, że istnieją rozsądne zakresy oparte na czasie z językiem (stąd odniesienie do Senior), które Starszy programista powinien być w stanie zdobyć kompetencje i być produktywnym. Powodem, dla którego zadaję pytanie, jest to, że menedżerowie IT powinni o tym wiedzieć, pisząc wymagania na stanowisko, a jako programista chciałbym mieć lepsze wyobrażenie o tym, jakie kryteria są stosowane dla tego typu doświadczenia = formuła kompetencji, która musi istnieć. Nawet jeśli to tylko praktyczna zasada. To, co skłoniło mnie do tego pytania, to fakt, że znalazłem rekruterów, którzy generalnie nie mają wykształcenia technicznego, próbują umieścić ludzi technicznych i po prostu patrzą na modne hasła technologiczne w CV i na to, ile doświadczenia ma każdy z deweloperów. Kierownik ds. rekrutacji często nie ma przygotowania technicznego i robi to samo z CV i wykorzystuje swojego architekta lub innego eksperta technicznego do sprawdzenia kandydata, aby upewnić się, że CV pasuje do osoby na rozmowie kwalifikacyjnej. Problemem jest tutaj postrzeganie „kompetencji” w umyśle zatrudniającego menedżera IT, niezależnie od tego, czy programista naprawdę może to podchwycić i działać. Opierają się na jakiejś formule w swoim umyśle, jak duże doświadczenie dewelopera z technologią będzie działać na to, czego chcą.


title: Dowiedz się, w jaki sposób dane zostały przetworzone

text: Cóż, to było pytanie, nad którym zastanawiałem się przez długi czas: Załóżmy, że mam słownik „wejście:wyjście” taki jak: 1. To {2:6, 5:15, 20:60, 26:78, .. 982:2946, 997:2991} gdzie `wyjście = wejście*3`. 2. lub To {0:5, 3:8, 17:22, 19:24, ... 991:996, 996:1001} gdzie `wyjście = wejście+5` lub coś innego. W skrócie, gdzie istnieje **określona relacja między wejściem a wyjściem**. Jak program **znaleźć relację między wejściem a wyjściem** , tak aby przy innym wejściu można było obliczyć wyjście? Czy można zrobić to samo z bardziej złożonymi obliczeniami, takimi jak `wyjście = 5*((wejście*5)+3)`


title: Czy możemy wykorzystać pomysły z programów GPL przy tworzeniu dowolnej aplikacji komercyjnej?

text: Zajmuję się tworzeniem aplikacji komercyjnej. Istnieje kilka programów na licencji GPL, które mają pewne cechy wspólne z moimi aplikacjami. Czy mogę wziąć pomysł z tych aplikacji na licencji GPL i wdrożyć je samodzielnie bez kopiowania kodu. Czy to narusza GPL.


title: W jaki sposób podsystem w różnych lokalizacjach powinien współdziałać i komunikować się?

text: Przepraszam za długi post... Tam gdzie pracuję mamy system z wieloma podsystemami, które są zlokalizowane w różnych lokalizacjach. Wszystkie podsystemy przetwarzają pewne dane i zapisują wynik w bazie danych _A_. W przypadku, gdy jakikolwiek inny podsystem potrzebuje danych wyjściowych dla innych podsystemów, łączy się z bazą danych i odczytuje z niej. I tak właśnie komunikują się ze sobą podsystemy. Istnieje również GUI, który łączy się z bazą danych i pokazuje informacje użytkownikowi końcowemu. Interakcja pomiędzy bazą danych a podsystemami jest bardzo wysoka i chociaż przekonywałem, że nie jest to zbyt dobry wybór projektu, powiedziano mi, że z wielu powodów (głównie „biznesowych” i krótkich terminów) nie możemy niczego zmienić w systemie na razie. Teraz chcemy dodać nową funkcję, w której użytkownik może dodać system powiadomień i alertów, który w przypadku, gdy coś się wydarzy w dowolnym podsystemie, powiadamia użytkownika za pomocą GUI. I oczywiście w zależności od różnych podsystemów należałoby wziąć pod uwagę różne elementy. Na podstawie tych elementów użytkownik może określić regułę alertu. Na przykład na innym serwerze mamy oprogramowanie, które pobiera informacje o serwerze, takie jak użycie procesora i pamięci RAM itp. Mogą to być _elementy_ dla użytkownika, aby ustawić regułę alertu powiadomienia. Na przykład, jeśli pamięć wykorzystana przestrzeń przekracza X procent. Jedynym sposobem na rozwiązanie tego problemu jest utworzenie nowych tabel w bazie danych. Gdy użytkownik doda nową regułę dla podsystemu, wstaw regułę do bazy danych. Każdy podsystem odczytuje bazę danych, aby sprawdzić, czy została dla niego określona jakaś reguła. Ale oznacza to, że każdy podsystem powinien czytać z bazy danych co najwyżej co minutę, i myślę, że to zepsułoby nasz system… A następnie podsystemy zapisują wynik w bazie danych, a GUI również odczytuje bazę danych, aby zobaczyć, czy należy wyświetlić jakieś powiadomienie użytkownik ...... jakieś myśli, jak to przezwyciężyć?


title: Dlaczego git nie łączy sąsiednich linii bez konfliktu?

text: Niedawno dowiedziałem się, że podczas łączenia dwóch gałęzi w git, jeśli są zmiany w dwóch _przyległych_ liniach, git deklaruje konflikt. Na przykład, jeśli plik `test.txt` ma następującą zawartość: Wiersz 1: A Wiersz 2: B Wiersz 3: C Wiersz 4: D i w gałęzi `master` zmieniamy to na Wiersz 1: A Wiersz 2: B1 Wiersz 3 : C Linia 4: D w gałęzi `testing` zmieniamy to na Linia 1: A Linia 2: B Linia 3: C1 Linia 4: D, a następnie próbujemy połączyć `testing` z `master`, git deklaruje konflikt scalania . Moim naiwnym oczekiwaniem było, że połączenie przebiegnie bez konfliktu i da to: Wiersz 1: A Wiersz 2: B1 Wiersz 3: C1 Wiersz 4: D Jestem pewien, że istnieje dobry powód, dla którego git nie łączy się w ten sposób. Czy ktoś może wyjaśnić ten powód?


title: Gdzie jest podział między Presentation i Logic w frameworkach JavaScript MVC?

text: Dowiedziałem się, że poniższy fragment kodu jest zły, ponieważ zawiera natrętny javascript i miesza prezentację z logiką: archiwum Najlepszą praktyką było dodanie jakiegoś identyfikatora do elementu link, a następnie powiąż z nim zdarzenie w osobnym pliku. Coś pomiędzy tymi wierszami $("#archive").click(function() { //do stuff }); Zobacz: Dlaczego używanie onclick() w html to zła praktyka Dlaczego teraz większość frameworków JavaScript MVC, takich jak Backbone.js, Angular.js, itp., teraz zachęca do takich fragmentów kodu: archiwum Pobrane z: http://angularjs.org/#todo-html Dlaczego teraz jest to w porządku?


title: Punkt złożoności bez powrotu. Jak to nazywasz?

text: Jako programista jednym z moich głównych zadań jest kontrolowanie złożoności. Jednak w niektórych projektach jest moment, w którym poziom złożoności rośnie tak wysoko, że osiąga swego rodzaju punkt „bez powrotu”. Po tej chwili nigdy nie można przywrócić projektu do akceptowalnego poziomu złożoności w krótszym czasie, niż potrzeba na przepisanie wszystkiego od zera. Czy ten konkretny moment ma nazwę w dialekcie programistów (coś podobnego do prawa Godwina dla trolli)? \--edytuj-- Przepraszam, jeśli nie mam jasności. Nie sądzę, że ten „moment” ma oficjalną nazwę lub jest poważnym miernikiem. Myślałem o czymś w duchu "szczytu Ballmera" w xkcd.


title: Gdzie znaleźć programistów do pracy dla start-upu z wynagrodzeniem w postaci akcji

text: Więc dosłownie zaczynam dopiero zaczynać w branży edukacyjnej. Bardzo szerokie podsumowanie, które pomija zdecydowaną większość tego pomysłu, jest takie, że jest to prawdziwy system zarządzania edukacją, który nie działa tylko jako wymyślny (i bardzo kosztowny) program, ale pomaga im w drodze. I taki, który współpracuje ze szkołą, a nie zamiast niej. **Ale moje pytanie brzmi, gdzie mogę znaleźć programistów, którzy będą pracować dla akcji firmy, niezależnie od mojego wieku (mam 15 lat)?** Zacząłem bardzo minimalną pracę nad samym pomysłem, zaprojektowałem niektóre z Nauczyciel Klient i część bazy danych Nie mogę zrobić wiele bardzo szybko, a to musi działać szybko, ponieważ jestem pewien, że są już ludzie, którzy robią coś bardzo podobnego. Znam obecne rozwiązania, takie jak Blackboard czy WebAssign i są one bardzo różne od tych, jednak z powodów, których nie mogę powiedzieć bez podpisania przez drugą stronę zmiany NDA: Jasna cholera, po opublikowaniu tego pytania i zadaniu nie spodziewałem się tylu odpowiedzi w kilku miejscach panuje ogólna zgoda co do tego, że powinienem to zrobić sam, ponieważ w tym momencie jestem na tym samym wózku, co ci biznesowcy, którzy mają dobre pomysły, ale potrzebują tylko programistów, jednak nie sądzę Mam wiedzę, aby samemu zajść tak daleko, jak chcę, zwłaszcza na początku. To, na co naprawdę liczyłem, to znalezienie ludzi, którzy mają trochę wolnego czasu poza swoją podstawową pracą, którzy chcieliby popracować nad pomysłem na boku, ale wydaje się, że takich ludzi jest mało. Mogę to zrobić sam, ale po prostu nie do końca tak dobrze, jak chcę. Czy mogę również uzyskać pomoc w znalezieniu przyzwoitych poradników dotyczących projektowania oprogramowania? Naprawdę nie mam żadnego ustrukturyzowanego planu i zacząłem programować i projektować na bieżąco


title: Czy testowanie oprogramowania faktycznie odbywa się na profesjonalnych projektach?

text: Byłem zaangażowany w wiele projektów w kilku firmach, ponieważ od dawna jestem deweloperem i wykonawcą. Szacuję, że **mniej niż 20%** projektów jest testowanych metodycznie. Przez metodycznie testowane mam na myśli wszelkie testy poza testami ad-hoc bez planu. Szacuję również, że **mniej niż 10%** projektów jest dokładnie testowanych metodycznie, gdzie w zespole mają dedykowanych testerów, dokument planu testów, w którym programiści piszą testy automatyczne, a następnie śledzą pokrycie testów i mierzą wyniki. ## Dwa pytania 1. Jakie są Twoje szacunki procentowe dotyczące tego problemu? 2. Jakie masz doświadczenie zawodowe dotyczące testowania oprogramowania? ## Dodatkowa uwaga Ponieważ pytanie dotyczące metodycznego testowania może uzyskać dość stronnicze odpowiedzi (ludzie lubią się chwalić, że są lepsi od innych), **zachęcam** innych programistów (tych, którzy nie są narażeni na metodyczne testowanie) również do udzielenia odpowiedzi, ponieważ w przeciwnym razie będzie wyglądało, że testy są przeprowadzane wszędzie… z wyjątkiem Twojej firmy.


title: Czy powinienem zacząć tworzyć kod przed zaplanowaniem interfejsu?

text: Zaczynam projekt gry po stronie moich normalnych projektów szkolnych/pracy i zastanawiam się, czy powinienem zacząć planować interfejs użytkownika przed rozpoczęciem rzeczywistego projektu w kodzie. Widzę kilka plusów i minusów robienia obu tych rzeczy na początku i zastanawiałem się, jakie rady mogą zasugerować niektórzy doświadczeni programiści.


title: Którego stosu technologicznego użyć do łączenia samochodów przez internet i urządzenia mobilne

text: Chcę rozpocząć pracę nad projektem, w którym chcę zbudować stronę intranetową i aplikację mobilną dla osób pracujących w moim biurze w celu wspólnego korzystania z samochodów. Podstawową ideą jest to, że jeśli ktoś jest zainteresowany szukaniem kogoś do wspólnego przejazdu, powinien zamieścić wiadomość o przejściu z punktu A do B w czasie, gdy X. Ludzie mogą na to odpowiedzieć. Zawęziłem moją opcję do Scala+Lift+MongoDB lub Node.JS+Redis/MongoDB+HTML5. Nie wiem, który z nich jest lepszy, a który gorszy dla problemu, o którym wspomniałem. Patrzymy również na tworzenie aplikacji mobilnych dla tej samej aplikacji, w których ludzie mogą wysyłać żądania wspólnych przejazdów przez swoje telefony. Szukam stosu, który może również uzupełnić rozwój mobilny. Wiem, że są na to różne rozwiązania, ale chcę nauczyć się czegoś nowego i ekscytującego oraz dobrze się bawić podczas jego tworzenia.


title: Nauka nowych tematów, które opierają się na dotychczasowej wiedzy - Ile wystarczy?

text: Jestem programistą komputerowym z zawodu od około 6 lat, a większość moich prac nie wykorzystywała zbytnio moich zdolności matematycznych. W rezultacie dość znacząco uległy atrofii. Wziąłem podstawy na studiach (obliczenia, obliczenia dyskretne, algebra liniowa, programowanie liniowe, prawdopodobieństwo/statystyki) i chociaż pamiętam część materiału, większość z nich jest albo znana powierzchownie, albo po prostu zapomniana. W rezultacie ciągle mam do czynienia z powyższym pytaniem – czuję, że moje podstawy wiedzy są słabe i że muszę „odświeżyć” i ponownie nauczyć się kilku tematów, zanim będę mógł rozwiązać jakiś problem, nad którym aktualnie pracuję na. Na przykład nigdy nie zajmowałem się programowaniem 3D i ostatnio zacząłem się tym bardziej interesować, ale kiedy otworzyłem książkę na ten temat, od razu zaniepokoiłem się ilością formuł i wiedzy, którą zakładają, że posiadasz. Otworzyłem jednak moją starą książkę o algebrze liniowej i stwierdziłem, że jest ona zbyt prosta (i nudna, szczerze mówiąc, może bc wciąż trochę wiem). Zawsze mam dwa zdania, czy po prostu wskoczyć od razu i uczyć się rzeczy na czas, czy przygotować się, wracając do bardziej podstawowych tematów. Czy potrzebuję całej algebry liniowej, aby zrozumieć programowanie 3D? Prawdopodobnie nie. Pytanie brzmi, ile potrzebuję? (To samo pytanie dotyczy fizyki - zakładam, że odświeżenie mechaniki wystarczy, w sensie możliwości kodowania podstawowych wersji demonstracyjnych mechaniki). Inną dziedziną, którą ostatnio się zainteresowałem, jest DSP i spotykam się z podobnymi wątpliwościami. Czy muszę cofnąć się i przejrzeć cały mój rachunek różniczkowy i dyskretne podręczniki do matematyki? Jeśli nie, które części mam odebrać? Kiedy to robię, zwykle kończę przechodzenie przez kilka pierwszych rozdziałów i po prostu przestaję, ponieważ nie dostaję zbyt wiele w sferze aplikacji i szczerze mówiąc, nudzę się. Potem denerwuję się sobą, bo zaczynam się nudzić. Stało się to w pewnym sensie błędnym kołem. Czy po prostu robię dużo hałasu o nic? Jakie style/metodologie uczenia się sprawdziły w Twoim przypadku?


title: Wzorzec delegowania: delegować czy delegować?

text: Mam proste pytanie dotyczące terminologii używanej we wzorcu Delegate; Załóżmy, że tworzę obiekt, który będzie odpowiedzialny za pobranie czegoś z sieci i kiedy to się skończy, oddzwoni do mnie z wynikiem. Myślę, że możemy nazwać obiekt pobierający „delegatem”, ponieważ wykonuje on pracę w imieniu mojego głównego obiektu. Jeśli mam rację aż do tego momentu, mam problem z przykładowymi kodami, które przeczytałem. Właściwość w klasie Downloader jest często nazywana „delegatem” i umieszczana w Self przez twórcę tego narzędzia do pobierania. Czy się mylę, czy zamiast tego powinno się to nazywać „delegatorem”?


Dlaczego niektóre biblioteki open source nie udostępniają plików binarnych? Zauważyłem, że niektóre projekty zlecają osobom trzecim, które utrzymują aktualne kompilacje oprogramowania, szczególnie dla kompilacji Windows. Pytam, bo to wydaje się przeszkodą w przyjęciu biblioteki. To więcej pracy dla programisty, ponieważ musi on skonfigurować swoje środowisko, aby go zbudować. Deweloper musi się również obawiać, że wprowadził błędy, niepoprawnie budując bibliotekę. * * * **EDYTUJ** : Niektóre aktualizacje dotyczące komentarzy i odpowiedzi. Usunąłem przykłady, ponieważ nie są one kluczowe w dyskusji. Przeformułowałem również moje pytanie jako „niektóre biblioteki open source zapewniają” zamiast „biblioteki open source mają tendencję do zapewniania”… nie zdawałem sobie sprawy, że ludzie poczują się z tego powodu urażeni.


title: Jaki jest najlepszy sposób na skomponowanie obiektu z komponentów w dwóch zespołach?

text: W moim projekcie mam zbiór zajęć. Klasy te w większości zawierają dane, które są aktualizowane rzadko lub wcale - to znaczy, że tak naprawdę nie _robi__ dużo - ich celem jest przekazywanie obiektów konsumenckich, które robią różne rzeczy, oddzielając dane od funkcjonalności. Chciałbym kontynuować ten model, pozwalając użytkownikowi traktować je jako takie - tj. można je serializować/deserializować bez specjalnego kodu, można je łatwo wykorzystać do komponowania większych klas, podklas itp. Haczyk jest jak najwięcej kontroli elementy takie jak GPU, nie są w ogóle _naprawdę_ oddzielone ani bezstanowe, ponieważ na każdy z nich przypada cały ładunek zasobów, które muszą być tworzone i usuwane w trakcie życia aplikacji — ale użytkownik nie musi tego robić martw się o to. Chciałbym poznać preferowany sposób dołączania wszystkich informacji do prostego obiektu w sposób, który jest bezpieczny, utrzymuje iluzję bezpaństwowości, ale jest również jasny dla każdego, kto patrzy na kod, co się dzieje (także obiekty są zdefiniowane w różnych zespołach). ![tutaj podaj opis obrazka](http://i.stack.imgur.com/5xAzd.png) P. Dlaczego po prostu nie wstawić A do B i ominąć Obiekt B? O. Ponieważ użytkownik tworzy Obiekt A i pracuje tylko z Obiektem A i nie powinien w ogóle wiedzieć, że Obiekt B istnieje. P. Dlaczego nie wykorzystać fabryk i stworzyć Object C? A. Ponieważ wtedy Assembly A nie może zawierać klas składających się z całego ładunku obiektów typu Object-A (ponieważ fabryka byłaby zdefiniowana w Assembly B, więc nie można by ich utworzyć). P. Więc jak tworzony jest Obiekt B? O. Obiekt B jest tworzony i wypełniany na żądanie, gdy obiekt A jest przekazywany do metody, która tego potrzebuje. Uwaga - wiem, że ten problem nie jest 'trudny' i jest wiele sposobów, aby to zrobić (w tej chwili mam do wszystkich dodany abstrakcyjny członek, który jest rzucany na konsumenta i działa OK), po prostu chcę trochę nowe pomysły/opinie na temat najlepszego sposobu — _co chciałbyś zobaczyć, jeśli odziedziczyłeś kod?_


title: Jaki jest prawdziwy sens „wyroczni” w testach SW?

text: Znam definicję wyroczni testującej, ale wydaje mi się, że jest przereklamowana. Mam specyfikację, po co mam zawracać sobie głowę myśleniem o wyroczniach? Po prostu porównuję, czego chce specyfikacja i co robi program. Albo mam przypadki użycia, cokolwiek. Kiedy czytam o wyroczniach w książkach, wygląda na to, że jest to nauka sama w sobie. Czy za tą koncepcją kryje się coś więcej? Może po prostu nie rozumiałem jej sensu. Wyrocznia składa się z generatora i komparatora. Jakie jest znaczenie komparatora, jeśli po prostu sprawdzasz, czy rzeczywista wydajność jest równa oczekiwanej wydajności? Jak inaczej można by to sprawdzić?


title: Fragmenty kodu w wywiadzie

text: Niedawno poszedłem na rozmowę kwalifikacyjną na stanowisko C development. Zamiast zadawać mi pytania, po prostu dali mi 20 fragmentów kodu, aby znaleźć dwa błędy logiczne na każdym z nich. Po prostu nie mogłem ukończyć wszystkich 20, ponieważ zajęło mi trochę czasu przejrzenie każdego z tych fragmentów kodu. Moje pytanie brzmi: czy to właściwy sposób oceniania kandydata? Jeśli tak, w jaki sposób mogę poprawić swoje umiejętności wykrywania błędów, aby nie tracić dużo czasu na następną rozmowę kwalifikacyjną? Jeśli to możliwe, prosze o podanie linków, pod którymi mógłbym znaleźć wiele próbek takich pytań (głównie w C). Dzięki i pozdrawiam Maddy


title: Miałem trochę wolnego czasu w pracy podczas prac konserwacyjnych, ale jedyne, co robię, to surfowanie po Internecie

text: Naprawdę mam z tym problem, ponieważ jest to idealna okazja, aby nauczyć się czegoś nowego, rozpocząć własny projekt... w zasadzie zrobić prawie wszystko, ale jedyne, co robię, to surfować po Internecie. Uważam, że nie chcę patrzeć na nic związanego z programowaniem i poważnie zastanawiam się, czy pozwalam, aby nuda była dla mnie najlepsza, mam depresję lub doświadczam wypalenia? Wszelkie sugestie, jak odzyskać ten bezproduktywny czas, byłyby bardzo mile widziane.


title: Funkcje zachęcające do korzystania z oprogramowania do zarządzania projektami

text: Jestem studentem i pracuję jako licencjat w dziale IT. Są bardzo skutecznymi programistami, ale jeśli chodzi o dokumentowanie tego, co robią i śledzenie, ile czasu spędzają na konkretnych zadaniach – nie aż tak bardzo. Zostałem odpowiedzialny za tworzenie oprogramowania do zarządzania projektami. Do tej pory stworzyłem satysfakcjonujące rozwiązanie z Trac. Mimo to programiści używają go, ponieważ „szef tak mówi” i robią to niechętnie. Nikt nie lubi wchodzić na osobną stronę internetową, rejestrować, co robili, zaznaczać pola, a co nie - więc moje pytanie brzmi: jako programista, jakie zachęty lub funkcje w oprogramowaniu do zarządzania projektami zachęciłyby Cię (lub przynajmniej sprawią, że będzie bardziej znośne) z niego korzystać?


title: Jak skutecznie zająć się opiniami recenzji kodu dotyczącymi nazw klas i metod bez sugestii dotyczących lepszej lub alternatywnej nazwy?

text: Częścią opinii z przeglądu kodu jest sugerowanie lepszych nazw metod i klas. Jak mogę odpowiedzieć na opinie o nazwach klas i metod, które nie sugerują alternatywy? Na przykład mógłbym utworzyć klasę > public class FooBar { } Mój recenzent powiedziałby wtedy: „Spróbuj wymyślić lepszą nazwę niż ta”. lub „Ta nazwa nie jest pomocna”. bez sugerowania alternatywnej nazwy. Przemyślałem już nazwę klasy, a `FooBar` jest naprawdę najlepszym, jaki mogę wymyślić. Jak właściwie mogę odpowiedzieć na opinie z tej recenzji?


title: Jak oddzielić proces rozwoju od aspektów zarządzania konfiguracją SVN?

text: Szukam alternatywy dla połączonych narzędzi SVN, zarówno jako narzędzia programistycznego, jak i narzędzia do zarządzania konfiguracją. Zamiast tego chciałbym zbadać podejście polegające na posiadaniu dedykowanego narzędzia do zarządzania konfiguracją (CM) i oddzielnego narzędzia programistycznego. Powodem tego jest to, że pracuję w firmie, w której wielu nie-programistów używa SVN do CM i myślę, że staje się to dla nich mylące, gdy programiści używają SVN do rozwoju razem z CM. Dodatkowo są sfrustrowani nakładaniem się możliwości i nie podoba im się perspektywa powrotu do niedziałających wersji. Rozdzielenie tych funkcji na dwa oddzielne narzędzia może zapewnić łatwość użycia dla nie-programistów, którzy używają SVN tylko jako narzędzia CM. Więc jakie podejście sugerowałbyś, aby to osiągnąć? Jeśli masz doświadczenie z tym, jakie narzędzia były dla Ciebie przydatne i jakie były Twoje wyniki w zakresie przejrzystości procesów i ogólnego przepływu pracy? Uwaga: IMO używające SVN dla obu jest najlepsze, ale ponieważ programiści stanowią tylko 20% użycia SVN, stworzenie szerzej akceptowanego procesu we wszystkich grupach może być warte zachodu (a przynajmniej warto się temu przyjrzeć, stąd ten post). Dzięki **Edytuj-** Typowy nie-programista przekazuje swoje obciążenia robocze do repozytorium SVN. Następnie, gdy klient uzna, że wersja naprawia/nie rozwiązuje problemu, wersje są przywracane lub aktualizowane. Nie chcą, aby pliki, które powodują niedziałające pliki wykonywalne, kiedykolwiek znajdowały się w SVN. W związku z tym cofanie najprawdopodobniej byłoby wykonywane po jednej wersji na raz... nie na przykład od wersji 142 do 89. Więc zasadniczo chcą narzędzia, które działa tylko z /tag.


title: Dlaczego tak wiele języków traktuje liczby zaczynające się od 0 jako ósemkowe?

text: Przeczytałem Gdzie są przydatne ósemki? i wydaje się, że ósemki są czymś, co kiedyś było przydatne. Wiele języków traktuje liczby poprzedzające 0 jako ósemkowe, więc dosłowne `010` to w rzeczywistości 8. Kilka z nich to JavaScript, Python (2.7) i Ruby. Ale tak naprawdę nie rozumiem, dlaczego te języki wymagają liczby ósemkowej, _zwłaszcza_, gdy bardziej prawdopodobnym zastosowaniem notacji jest oznaczenie liczby dziesiętnej zbędnym 0. JavaScript jest językiem po stronie klienta, ósemkowy wydaje się dość bezużyteczny. Wszystkie trzy są całkiem nowoczesne w innym sensie i nie sądzę, że byłoby dużo kodu używającego notacji ósemkowej, który zostałby zepsuty przez usunięcie tej „funkcji”. Tak więc moje pytania to: * Czy jest jakiś sens w tych językach obsługujących literały ósemkowe? * Jeśli potrzebne są literały ósemkowe, dlaczego nie użyć czegoś takiego jak „0o10”? Po co kopiować starą notację, która zastępuje bardziej użyteczny przypadek użycia?


title: W jaki sposób Django zamienia ciągi nazw pól w zmienne nazw pól?

text: Jestem bardzo nowy w Pythonie i (pochodzę z Javy) próbuję myśleć w sposób „pythoniczny”. Mam problem ze zrozumieniem, w jaki sposób Django zamienia nazwę funkcji (lub zmienną) podaną w ciągu na rzeczywistą funkcję. Przykład z tutoriala Django: Jeśli podamy: list_display = ('question', 'pub_date', 'was_published_recently') Django odczytuje funkcję i kilka powiązanych właściwości z kodu: def was_published_recently(self): return self.pub_date >= timezone. now() - datetime.timedelta(days=1) was_published_recently.admin_order_field = 'pub_date' was_published_recently.boolean = Prawda was_published_recently.short_description = 'Opublikowane niedawno?' **Więc moje pytanie: w jaki sposób ciąg znaków jest przekształcany w rzeczywistą nazwę funkcji?**


title: Dlaczego dobrzy programiści mają brzydkie strony internetowe?

text: Czy to jakiś rodzaj prawa Murphy'ego? Może jeśli chcę zatrudnić bardzo dobrego ninja programowania powinienem zajrzeć na jego stronę jak w "Pokaż moją stronę, a powiem jak dobry jesteś" EDIT: Przejdź do zakładki stackoverflow top users, a zobaczysz


title: Dobre pytania do zadania CEO i CTO start-upu podczas rozmowy kwalifikacyjnej

text: Na tej stronie znajduje się wiele pytań dotyczących pytań, które należy zadać potencjalnemu pracodawcy podczas rozmowy kwalifikacyjnej. Zastanawiałem się jednak, czy są konkretne pytania, które należy zadać podczas rozmowy kwalifikacyjnej w małym start-upie? Praca w nowym start-upie różni się od pracy u każdego dotychczasowego pracodawcy i chciałem się dowiedzieć, czy jest coś, o czym warto zapytać CEO i CTO start-upu podczas rozmowy kwalifikacyjnej. Będę przeprowadzać rozmowę kwalifikacyjną na stanowisko statystyka/analityka. EDIT: Odbyłem dwie godzinne rozmowy telefoniczne zarówno z CEO, jak i CTO. Nie były to rozmowy kwalifikacyjne, ale rozmawialiśmy o tym, dlaczego chcę tam pracować, w jaki sposób moje umiejętności mogą przyczynić się do rozwoju firmy i tak dalej. Rozmawialiśmy też o kilku rzeczach w moim CV, w tym o moim wykształceniu, doświadczeniu zawodowym i wiedzy programistycznej. Po drugiej rozmowie telefonicznej kupili mi bilet lotniczy, żeby polecieć do ich firmy, która ma siedzibę w innym stanie. Zakładam, że nie polecieliby mnie do swojej firmy w innym stanie, gdybym nie był poważnym kandydatem.


title: Szukasz konkretnych zalet diagramu TDD

text: Szukam konkretnego schematu, który ostatnio widziałem. Była to kombinacja trzech diagramów, pokazujących 1. Projekt z testami najpierw testami jednostkowymi o krótszym czasie naprawiania błędów / testowanie systemowe 2. Projekt z testami końcowymi testami jednostkowymi o zmniejszonej ilości czasu na naprawę błędów / testowanie systemowe. 3. Projekt bez testów jednostkowych, który wymaga największej uwagi Wyglądał mniej więcej tak: ![tutaj wpisz opis obrazu](http://i.stack.imgur.com/bFVdq.png) Chciałbym to znaleźć ponownie . Wiem, że mógłbym posprzątać tę makietę visio, ale chciałbym móc ją przedstawić w kontekście. Myślę, że pochodzi z książki, którą ostatnio czytałem, ale równie dobrze może pochodzić z artykułu w sieci. Skanowanie mojej półki z książkami i obrazów Google oraz mojej historii nie było w stanie tego ustalić. Książki, które czytałem (ale nie mogłem ich teraz zobaczyć) w ciągu ostatnich kilku miesięcy: * Clean Code / Clean Coder autorstwa Boba Martina * Art of Unit Testing (2.) * Dependency Injection w .Net


title: Co to jest aplikacja w czasie rzeczywistym w c#?

text: Szukam pracy i często spotykam się z "Potrzebne doświadczenie w czasie rzeczywistym", Co oznacza aplikacja w czasie rzeczywistym z perspektywy C#? Czy nie mówimy tylko o wielowątkowości? jeśli nie, to czy istnieje różnica między wielowątkowością a czasem rzeczywistym? czy jest to trudne do opanowania, jeśli nie robiłeś wielowątkowości? dziękuję za Twój czas