размисли

Menu

Програмиране

April 3, 2016, By  | Leave a reply

 

Общи насоки

There are only two hard things in Computer Science: cache invalidation and naming things.

- Phil Karlton

Малки фирми

Принципи

* Принципът KISS, „Keep It Short & Simple!“ / „Направи го кратко и просто!“ * (източник)
Принципът KISS се основава на две наблюдения:
1. Потребителите като цяло предпочитат продукти и услуги, които са лесни за разбиране, усвояване и употреба.
2. Фирмите, които произвеждат тези продукти или доставят тези услуги, могат да открият и за себе си преимуществата на простите решения: намаляване на разходите и времето за производство. Понякога началният етап на проектиране и разработка на по-прости решения може да отнеме повече време, но дългосрочният ефект да се изразява в по-лесни и евтини за производство продукти, повече и по-верни клиенти и по-дълъг пазарен живот на продукта


* DRY – don’t repeat yourself / Не се повтаряй * (източник)
Принципът DRY гласи, че “Всяко парче информация знание трябва да има единично, еднозначно и авторитетно представяне в рамките на една система.”. Принципът е формулиран от Анди Хънт и Дейв Томас в тяхната книга Прагматичният програмист. Когато DRY принципа се прилага успешно, модификацията на всеки един елемент на една система не се нуждае от промяна в други логически несвързани документи.
* Single source of truth / Единствен източник *
Всеки елемент от данни е съхранен само веднъж.
* SOLID * (източник)

Инициали Акроними Концепция
S SRP Single Responsibility Principle

Принцип за единствена отговорност

Класа трябва да има една единствена отговорност(т.е. само промени в софтуерните спецификации могат да предизвикат промяна в спецификациите на класа)

O OCP Open-Closed Principle

Прицип отворен/затворен

„Софтуерните единици трябва да са отворени за разширение, но затворени за промяна.“

L LSP Liskov Substitution Principle

Принцип на заместване на Лисков

Всеки наследник(подтип) трябва лесно да заменя всичките си базови типове.

I ISP Interface Segregation Principle

Принцип за разделяне на интерфейсите

„Много на брой малки интерфейси е по-добре от един голям общ интерфейс.“

D DIP Dependency Inversion Principle

Принцип на обръщане на зависимостите

Всички класове трябва да зависят от абстракции и нито един не трябва да зависи от конкретен клас.”

Принцип за единствена отговорност – SRP
Всяка една единица от кода има една единствена отговорност, т.е. една променлива, метод, клас, библиотеки, фреймуърци правят едно единствено нещо. По този начин кода става модуларен разпръснат на малки парчета и всяко парче върши строго специфицирана дейност. „Когато има нещо за промяна в един код не трябва да имаме повече от една причина да го променяме.“ – Роберт Мартин.
SRP се базира на принципите:
Strong Cohesion – силна сплотеност на функционалността на един клас, т.е. всички методи в него трябва да имат обща насока.
Loose coupling – класа да е максимално „разкачен“ от всички останали (хипотетично, ако се изтрие един клас, проекта да може да се билдне отново). В реалността няма как да се случи, но идеята е да се стремим по възможност да избягваме зависимости между класовете.

Конфигурация

Методологии

Функции

Дизайн

 10 препоръки при създаване на мобилни приложения

  1. Връзка с Back-End системите – потребителски профил, който да се синхронизира на всички устройства.
  2. Високо ниво на сигурност – златната среда.
  3. Достъп отвсякъде – Облакът.
  4. Пълна мобилност… – мобилно приложение замества … десктоп апликацията.
  5. …и дори повече (мобилност) – Приложението трябва да улеснява хората и да извършва възможно най-много действия вместо тях.
  6. API за по-бърз прогрес – в пъти по-бързо и по-ефективно.
  7. Фирмени или потребителски приложения? – бизнесът би заплатил всякакви суми, стига това да спомогне за успеха и развитието му.
  8. Обслужване на потребностите – Не пренебрегвайте никоя евентуална нужда на потребителите си. И не занемарявайте вече готовия си продукт.
  9. Специализирани приложения – Често разработчиците започват да създават дадено приложение с ясна представа за профила на крайния потребител. Но постепенно добавят още и още функции и профилът се размива. А това само би объркало хората, които в последствие ще се опитат да го използват.
  10. Представянето – всяка една фраза в описанието на приложението би могла да спечели или да отблъсне даден потребител.

Седем практични правила за правене на успешен бизнес според Питър Тийл

  1. Ако искате да създадете и задържите стойност, не навлизайте в бизнес, където продуктът е унифициран.
  2. Ако поставите краткосрочния ръст над всичко друго ще пропуснете най-важния въпрос: Ще просъществува ли бизнесът ми 10 години?
  3. Собствената технология е най-значимото предимство, кое­то може да има една компания, защото тя прави продукта ви труден или невъзможен за имитиране.
  4. Всеки стартъп трябва да започне с много малък пазар. Винаги правете „грешката“ да започвате на дребно.
  5. Идеалният целеви пазар за един стартъп е малка група със специфични потребности, събрана на едно място и обслужвана от малко или никакви конкуренти.
  6. Да „продадете“ компанията си на медиите е точно толкова важно, колкото и продажбата на всеки друг.
  7. Когато започвате нещо, първото и най-важното решение е с кого да го започнете. Изборът на съдружник е като брака, а конфликтът със съдружник е не по-малко грозна картинка от развода.

Най-честите грешки, които младежите допускат на работното място – Money.bg

  1. Не задават достатъчно въпроси – Haй-дoбpият нaчин дa ycвoиш нeщo, ĸoeтo нe знaeш или нe paзбиpaш, e дa питaш.
  2. Не се интересуват от това как се оценява работата им – ще знаят в каква посока да работят.
  3. Работят до късно – прави служителя по-малко продуктивен по време на работа.
  4. Правят нещата прекалено сложни – най-простите решения често са най-добрите.
  5. Не виждат контекста на нещата – Hoвoзaвъpшилитe взeмaт тoлĸoвa нaвътpe paбoтaтa cи, чe чecтo ce зaxвaщaт c eдин пpoeĸт, миcлeйĸи, чe изпълнeниeтo мy e вcичĸo, ĸoeтo имa знaчeниe. Bcъщнocт тaĸa зaбpaвят, чe имaт и дpyги зaдaчи зa изпълнeниe и paбoтят в eĸип c дpyги cвoи ĸoлeги.

Разни

https://pragprog.com/the-pragmatic-programmer/extracts/tips – Extracted From The Pragmatic Programmer
http://www.cphpvb.net/network-security/8009-the-most-famous-software-bugs/ – големи софтуерни бъгове

Python

bottle – for web services
jython – for GUI development
brython – for frontend web development
bottle, gevent, bottle_sqlite, jsend, pyjade, requests, lxml, re, codecs, click – useful modules

WEB

PHPjQueryJavaPythonSQLiteUnQLitenGinxHAProxymemcachedstunnelrinetdOpenVPNw3schoolsschema.orgjadeWordPresssqlite-integrationgantrynanomsgmonit

 

Leave a Reply

You must be logged in to post a comment.

 

Recent Posts

Recent Comments

Archives

Categories

Meta

Copyright © 2020 | Powered by WordPress | Actuate Theme by mudThemes