Так, шановний, функція може бути меншою і меншою, і добре чи погано, це залежить від мови / рамки, яку ви використовуєте.
На мою думку, я здебільшого працюю над Front End Technologies. Малі функції в основному використовуються як допоміжні функції, які ви обов'язково будете використовувати їх як багато під час роботи з невеликими фільтрами та використовуючи ту саму логіку для вашої програми. Якщо у вашій програмі є занадто багато загальної логіки, тоді ви будете мати багато дрібних функцій.
Але в додатку, де у вас немає загальної логіки, ви не будете зобов’язані робити невеликі функції, але ви можете розбити свій код на сегменти, де вам стає легко керувати та розуміти.
Загалом, розбийте ваш величезний код на невеликі функції - це дуже хороший підхід. У сучасних рамках та мовах ви зобов'язані це робити, наприклад
data => initScroll(data)
є анонімною функцією в ES 2017 JavaScript і Typescript
getMarketSegments() {
this.marketService.getAllSegments(this.project.id)
.subscribe(data => this.segments = data, error => console.log(error.toString()));
}
у наведеному вище коді ви можете побачити 3 функції декларації та 2 виклики функції. Це простий службовий виклик у Angular 4 з Typescript. Ви можете думати про це як про свої вимоги
([] 0)
([x] 1)
([x y] 2)
Вищенаведені 3 анонімні функції в мові clojure
(def hello (fn [] "Hello world"))
Вищезазначене є функціональним декларацією у дотику
Так, так, ФУНКЦІЇ можуть бути як меншими, але добре чи погано, якщо у вас є такі функції, як:
incrementNumber(numb) { return ++numb; }
Добре це робити не дуже, але що робити, якщо ви використовуєте цю функцію в тезі HTML, як у нас в Angular Framework, якщо не було підтримки збільшення або зменшення кутових шаблонів HTML, тоді це було б рішенням для я.
Давайте візьмемо інший приклад
insertInArray(array, newKey) {
if (!array.includes(newKey)) {
array.push(newKey);
}
}
Наведений вище приклад є необхідним під час відтворення, коли масиви всередині кутових шаблонів HTML. Тому іноді вам доведеться створювати невеликі функції
Assert.AreEqual<int>(expected, actual, message, arg1, arg2, arg3, ...);
. Другий - добре, як є. Я потенційно включав би необов'язковий прапор bool, який би диктував, чи потрібно викидати виняток / тощо. у випадку, якщо зворотний виклик не є функцією.