Допустим, вы разработчик, и вам от пользователя приходит строка user-agent с описанием того, каким браузером он пользуется.
В этой строке будет что-то типа такого:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
И вы хотите из неё узнать мажорную версию Chrome, то есть вытащить число 51. Что вы сделаете? Можно, конечно, написать свой парсер, но я уверен, многие воспользуются регулярными выражениями. Я бы воспользовался. Какое выражение сюда подходит? С виду кажется, что вот такое:
/Chrome\/(\d\d)\./g
Мы ищем слово Chrome и слэш, затем ловим в группу две цифры, после которых стоит точка. Так?
По крайней мере, мышление достаточного количества разработчиков именно таково. Зачастую программистам не хватает умения отойти от техзадания на уровень вещественной сути того, с чем они работают. На самом деле число 51 это версия. Версия будет увеличиваться со временем. «Марти, где твоё четырёхмерное воображение?» Если уже прошло 50 версий, то и следующие 50 не за горами, число станет трёхзначным, регулярка или парсер, сделанные под двухзначные числа, перестанут работать.
Трехзначная версия Chrome и Firefox приближается уже сейчас. И да, в них падает куча функций на сайтах, включая крупные корпорации: Yahoo, Bethesda, HBO и бог знает сколько сайтов поменьше. Чисто из-за цифры. Это уже назвали «Проблема сотой версии» по аналогии с «Проблемой 2000 года» (программисты записывали год двумя цифрами, 2000 стал неотличим от 1900).
К чему это я? Полезно задумываться о физическом воплощении того, что вы представляете в своей программе. Ваш код должен описывать не столько требования заказчика, сколько законы, по которым существует этот объект в реальном мире.
#dev
#Kosovo🇽🇰
#Parlamentari
Exit poll di Albanian Post.
🟥 Autodeterminazione! (#VV|PES): 43,5%
🟦 Partito Democratico del Kosovo (#PDK|ALDE): 23,6%
🟧 Lega Democratica del Kosovo (#LDK|PPE): 15,9%
🟦 Alleanza per il Futuro del Kosovo (#AAK|Destra): 7,2%
@TuttoElezioni
#Kosovo🇽🇰
#Parlamentari
Exit poll di KlanKosova.
🟥 Autodeterminazione! (#VV|PES): 44,1%
🟦 Partito Democratico del Kosovo (#PDK|ALDE): 23,9%
🟧 Lega Democratica del Kosovo (#LDK|PPE): 16,1%
🟦 Alleanza per il Futuro del Kosovo (#AAK|Destra): 5,8%
🟪 Iniziativa Socialdemocratica (#NISMA|Centro-sinistra): 1,1%
@TuttoElezioni
🇽🇰#Kosovo — Il partito del premier uscente Albin #Kurti ha vinto le elezioni legislative. #Vetevendosje (nazionalista e di centrosinistra) ha ottenuto il 49% dei voti. I partiti d'opposizione di centrodestra hanno ottenuto rispettivamente il 21% (#PDK), 18% (#LDK) e 7% (#AAK). 4% alla lista Serba. Il risultato potrebbe porre fine allo stallo politico.
@UltimoraPolitics24
#Kosovo🇽🇰
#Parlamentari
Risultati preliminari.
Sezioni scrutinate: 2.557/2.557 (100%).
🟥 Autodeterminazione! (#VV|PES): 49,34%
🟦 Partito Democratico del Kosovo (#PDK|ALDE): 20,98%
🟧 Lega Democratica del Kosovo (#LDK|PPE): 13,57%
🟦 Alleanza per il Futuro del Kosovo (#AAK|Destra): 5,66%
🟦 Lista Serba (#SL|Minoranza serba): 4,81%
🟪 Iniziativa Socialdemocratica (#NISMA|Centro-sinistra): 1,70%
@TuttoElezioni
#Kosovo🇽🇰
#Parlamentari
Risultati provvisori.
Sezioni scrutinate: 2.548/2.557 (99,65%).
🟥 Autodeterminazione! (#VV|PES): 49,30%
🟦 Partito Democratico del Kosovo (#PDK|ALDE): 21,00%
🟧 Lega Democratica del Kosovo (#LDK|PPE): 13,57%
🟦 Alleanza per il Futuro del Kosovo (#AAK|Destra): 5,68%
🟦 Lista Serba (#SL|Minoranza serba): 4,78%
🟪 Iniziativa Socialdemocratica (#NISMA|Centro-sinistra): 1,71%
@TuttoElezioni
#Kosovo🇽🇰
#Parlamentari
Risultati provvisori.
Sezioni scrutinate: 2.444/2.557 (95,58%).
🟥 Autodeterminazione! (#VV|PES): 49,79%
🟦 Partito Democratico del Kosovo (#PDK|ALDE): 21,16%
🟧 Lega Democratica del Kosovo (#LDK|PPE): 13,79%
🟦 Alleanza per il Futuro del Kosovo (#AAK|Destra): 5,74%
🟦 Lista Serba (#SL|Minoranza serba): 3,85%
🟪 Iniziativa Socialdemocratica (#NISMA|Centro-sinistra): 1,72%
@TuttoElezioni
#Kosovo🇽🇰
#Parlamentari
Risultati provvisori.
Sezioni scrutinate: 2.238/2557 (87,52%).
🟥 Autodeterminazione! (#VV|PES): 50,25%
🟦 Partito Democratico del Kosovo (#PDK|ALDE): 20,76%
🟧 Lega Democratica del Kosovo (#LDK|PPE): 14,04%
🟦 Alleanza per il Futuro del Kosovo (#AAK|Destra): 5,99%
🟦 Lista Serba (#SL|Minoranza serba): 3,29%
🟪 Iniziativa Socialdemocratica (#NISMA|Centro-sinistra): 1,63%
@TuttoElezioni
#Kosovo🇽🇰
#Parlamentari
Risultati provvisori.
Sezioni scrutinate: 857/2557 (33,52%).
🟥 Autodeterminazione! (#VV|PES): 48,10%
🟦 Partito Democratico del Kosovo (#PDK|ALDE): 19,41%
🟧 Lega Democratica del Kosovo (#LDK|PPE): 13,89%
🟦 Alleanza per il Futuro del Kosovo (#AAK|Destra): 7,67%
🟦 Lista Serba (#SL|Minoranza serba): 4,26%
🟪 Iniziativa Socialdemocratica (#NISMA|Centro-sinistra): 1,65%
@TuttoElezioni
#Kosovo🇽🇰
#Parlamentari
Risultati provvisori.
Sezioni scrutinate: 429/2557 (16,78%).
🟥 Autodeterminazione! (#VV|PES): 46,77%
🟦 Partito Democratico del Kosovo (#PDK|ALDE): 19,77%
🟧 Lega Democratica del Kosovo (#LDK|PPE): 13,52%
🟦 Alleanza per il Futuro del Kosovo (#AAK|Destra): 7,57%
🟦 Lista Serba (#SL|Minoranza serba): 4,31%
🟪 Iniziativa Socialdemocratica (#NISMA|Centro-sinistra): 1,72%
@TuttoElezioni