Обновить
  • по релевантности
  • по времени
  • по рейтингу

Functions are almost objects

JavaScript *
I was impressed! Вроде бы все понятно и давно известно, но в голову не приходило.

	var store = {
		id: 1,
		cache: {},
		add: function( fn ) {
			if ( !fn.uuid ) {
				fn.uuid = store.id++;
				return !!(store.cache[fn.uuid] = fn);
			}
		}
	};

	function ninja(){}

	assert( store.add( ninja ), "Function was safely added." );
	assert( !store.add( ninja ), "But it was only added once." );



Взято из Secrets of JavaScript ninja by John Resig
Всего голосов 16: ↑6 и ↓10 -4
Просмотры 702
Комментарии 14

Declarative HTML Helpers

ASP *

@functions @helpers


Большинство хелперов в asp.net mvc 3 это методы-расширения класса System.Web.Mvc.HtmlHelper.
Однако не всегда удобно создавать отдельный статический класс для 2-3 хелперов необходимых в одной вьюшке. И совсем неудобно создавать хелперы возвращающие большие блоки html-кода: ни подсветки синтаксиса, ни интеллисенса, ни прочих плюшек.

Для решения этих проблем в Razor есть два замечательных блока. Они позволяют создавать хелперы непосредственно в .cshtml-файлах.

image
Круто! но зачем это нужно?
Всего голосов 42: ↑37 и ↓5 +32
Просмотры 14K
Комментарии 12

Понимание callback-функций (колбеков)

JavaScript *
Перевод
Callback-функции чрезвычайно важны в языке Javascript. Они есть практически повсюду. Но, несмотря на имеющийся опыт программирования на C/Java, с ними у меня возникли трудности (как и с самой идеей асинхронного программирования), и я решил в этом разобраться. Странно, но я не смог найти в интернете хороших вводных статей о callback-функциях — в основном попадались отрывки документации по функциям call() и apply() или короткие кусочки кода, демонстрирующие их использование, и вот, набив шишек в поисках истины, я решил написать введение в callback-функции самостоятельно.
Читать дальше →
Всего голосов 27: ↑13 и ↓14 -1
Просмотры 294K
Комментарии 16

Функциональные выражения в JavaScript

JavaScript *
В JavaScript есть множество способов сделать одно и то же. В этом есть и хорошее, и плохое. Для новичка это точно плохо, так как ему придется не только изучить большее количество информации, но и появится больше мест для совершения потенциальных ошибок. Это может происходить при определении функций.

Есть множество различных способов объявить функцию:

function A() {};             // декларация функции
var B = function () {};       // функциональное выражение
var C = (function () {});     // функциональное выражение с оператором группировки
var D = function foo () {};   // именованное функциональное выражение
var E = (function () {})();   // самовызывающееся функциональное выражение
var F = new Function();     // конструктор функции
var G = new function() {};   // вырожденный случай: конструктор объекта

В таком обилии сложно не запутаться, не так ли? Как правило, в повседневной жизни мы используем не более трех различных типов объявления функций, и это отлично работает. Однако если копнуть поглубже, то может оказаться, что большинство из нас даже не подозревает какой объём таинств и подводных камней хранит в себе операция объявления функции.
Читать дальше →
Всего голосов 20: ↑12 и ↓8 +4
Просмотры 26K
Комментарии 23

JSON и PostgreSQL 9.5: с еще более мощными инструментами

PostgreSQL *
Перевод
PostgreSQL 9.5 представил новый функционал, связанный с JSONB, значительно усиливающий его уже имеющиеся NoSQL характеристики. С добавлением новых операторов и функций, теперь стало возможно с легкостью изменять данные, хранящиеся в JSONB формате. В этой статье будут представлены эти новые операторы с примерами, как им можно использовать.

С добавлением типа данных JSON в версии 9.2, PostgreSQL наконец-то начал поддерживать JSON нативно. Несмотря на то что с выходом этой версии стало возможно использовать PostgreSQL как «NoSQL» базу данных, не так много можно было сделать на самом деле в то время из-за нехватки операторов и интересных функций. С момента выхода 9.2 версии, поддержка JSON значительно улучшалась в каждой следующей версии PostgreSQL, выливаясь сегодня в полное преодоление изначальных ограничений.
Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 33K
Комментарии 8

Доводы в пользу function tree

JavaScript *Функциональное программирование *Angular *ReactJS *
Перевод

В этой статье мы поговорим о написании хорошего кода и о проблемах, с которыми мы при этом сталкиваемся. Понятный, декларативный, компонуемый и тестируемый — эти термины употребляются, когда речь заходит о написании хорошего кода. Решением проблем часто называют чистые функции. Но написание веб-приложений, в основном, связано с побочными эффектами и сложными асинхронными потоками операций, концепциями, которые по своей сути не являются чистыми. Ниже описан подход, который позволяет охватывать работу с побочными эффектами и сложными асинхронными потоками, сохраняя преимущества чистых функций.


Написание хорошего кода


Чистые функции — Святой Грааль в написании хорошего кода. Чистая функция — это функция, которая при одинаковых аргументах всегда возвращает одни и те же значения и не имеет видимых побочных эффектов.


function add(numA, numB) {
  return numA + numB
}

Полезным свойством чистых функций является то, что их легко тестировать.


test.equals(add(2, 2), 4)

Компонуемость тоже является их сильной стороной.


test.equals(multiply(add(4, 4), 2), 16)

К тому же их очень легко использовать декларативно.


const totalPoints = users
  .map(takePoints)
  .reduce(sum, 0)

Но давайте взглянем на ваше приложение. Какая его часть действительно может быть выражена чистыми функциями? Насколько часто речь идёт о преобразовании значений, которые традиционно выполняют чистые функции? Могу предположить, что большая часть вашего кода работает с побочными эффектами. Вы выполняете сетевые запросы, DOM манипуляции, используете вебсокеты, локальные хранилища, изменяете состояние приложения и так далее. Это всё описывает разработку приложения, по крайней мере в Интернете.

Читать дальше →
Всего голосов 40: ↑36 и ↓4 +32
Просмотры 19K
Комментарии 34

Python’ом по машинлернингу

Блог компании Microsoft Python *Программирование *Microsoft Azure Машинное обучение *

Сегодня только ленивый не говорит (пишет, думает) про машинное обучение, нейросети и искусственный интеллект в целом. Всего лишь в прошлом году ML сравнили с подростковым сексом — все хотят, но никто не занимается. Сегодня все озабочены тем, что ИИ нас оставит без работы. Хотя, судя по последним исследованиям Gartner, можно успокоиться, так как к 2020 году благодаря ИИ появится больше рабочих мест, чем ликвидируется. Так что, дорогой друг, учи ML, и будет тебе счастье.


Читать дальше →
Всего голосов 26: ↑21 и ↓5 +16
Просмотры 18K
Комментарии 1

Эконом решение для Интернета Вещей. Azure IoT Hub + Azure functions

Microsoft Azure Разработка для интернета вещей *

Одним из самых дорогих сервисов в стандартном IoT решении от Azure является Stream Analytic. Для того, чтобы обойти этот дорогой сервис, больше подходящий для разработки Enterprise решений можно воспользоваться возможностями Azure Functions.

Как можно создать IoT хаб и подключить к нему Arduino я уже писал раньше. Теперь, давайте удешевим решение. Заменим Stream Analytic на Azure Functions.
Под катом вы найдете мануал How-To
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 3.8K
Комментарии 2

typeof Everything и утиные недоразумения

Ненормальное программирование *JavaScript *ООП *

image


Каждый, использующий в каких бы то ни было целях замечательный JavaScript, задавался вопросом: мол а почему typeof null — это "object"? typeof от функции возвращает "function", но от Array"object"? а где же getClass у ваших хваленых классов? И хотя на большую часть легко и непринужденно отвечает спецификация или исторические факты, я бы хотел немного подвести черту… в большей степени для самого себя.


Если, читатель, тебе в твоих задачах тоже недостаточно typeof да instanceof и хочется какой-то конкретики, а не "object"ы, то дальше может быть полезно. Ах да, про утки: они будут тоже, только немного неправильные.

Читать дальше →
Всего голосов 20: ↑18 и ↓2 +16
Просмотры 8.1K
Комментарии 1

Красота НЕ-безымянных функций в JavaScript

Ненормальное программирование *JavaScript *Функциональное программирование *

image


Анонимные стрелочные функции в JavaScript, согласно некоторым опросам — самая популярная фича ES-2015, что также подчеркнуто исчерпывающим числом туториалов в интернете. Они бесспорно очень полезны, но в этой небольшой статье мы рассмотрим примеры использования обделенных вниманием не менее замечательных выражений с именованными функциями — NFE.

Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры 11K
Комментарии 7

Занимательный JavaScript: Без фигурных скобок

Ненормальное программирование *Занимательные задачки JavaScript *

image


Меня всегда удивлял JavaScript прежде всего тем, что он наверно как ни один другой широко распространенный язык поддерживает одновременно обе парадигмы: нормальные и ненормальное программирование. И если про адекватные best-практики и шаблоны прочитано почти все, то удивительный мир того, как не надо писать код но можно, остается лишь слегка приоткрытым.


В этой статье мы разберем еще одну надуманную задачу, требующую непростительных надругательств над нормальным решением.

Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Просмотры 23K
Комментарии 29

Гайд: создание бессерверных приложений

Блог компании Microsoft Облачные вычисления *Microsoft Azure Хранение данных *Облачные сервисы
Tutorial
Сегодня выкладываем гайд по созданию бессерверных приложений. Он включает в себя 3 основных раздела: создание бессерверной логики, настройка триггеров и использование привязок. Присоединяйтесь!

Читать дальше →
Всего голосов 11: ↑7 и ↓4 +3
Просмотры 5.6K
Комментарии 2

Занимательный JavaScript: Снежный день

Ненормальное программирование *Занимательные задачки JavaScript *

Image


Очередная надуманная задачка по ненормальному программированию на JavaScript. В этот раз по случаю грядущего Нового 2019 года. Надеюсь, будет так же интересно решать, как мне было интересно придумывать. Любопытных прошу под кат. Всем шампанского и всех с наступающим!

Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 7.6K
Комментарии 14

Топ-3 функции Python, о которых вы не знали (Наверное)

Python *
Из песочницы
Привет, Хабр! Представляю вашему вниманию перевод статьи «Top 3 Python Functions You Don’t Know About (Probably)» автора Dario Radečić.

Будучи одним из самых популярных языков 21-го века, Python, безусловно, обладает множеством интересных функций, которые стоит изучить подробно. Три из них будут рассмотрены сегодня, каждая — теоретически, а потом и на практических примерах.

image
Читать дальше →
Всего голосов 43: ↑19 и ↓24 -5
Просмотры 6.8K
Комментарии 23

Serverless телеграм бот с использованием Яндекс облака

Python *Яндекс API *Микросервисы *
Из песочницы
Всем привет! Меня зовут Павлов Виктор, я являюсь практикантом-преподавателем информатики в одном из колледжей России. Так вот, для студентов мы стараемся внедрить в учебный процесс новейшие технологии и «Serverless» боты являются одним из таких направлений.

Эта статья навеяна популярностью ресурса среди студентов-программистов, но я постараюсь рассказать всё максимально просто для совсем начинающих программистов. В итоге создадим простого Эхо-бота, как заготовку для различных модификаций.

P.S. Также статья навеяна отсутствием туториала на языке Python, на Nodejs есть хороший туториал.

Ссылка на документацию Yandex Cloud Functions
Ссылка на документацию Telegram API.


Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 6K
Комментарии 13

Подключение Yandex Database к serverless телеграм боту на Yandex Functions

Python *Яндекс API *Микросервисы *

Данная статья является продолжением вот этой статьи. В ней мы рассмотрели создание и настройку yandex cloud functions телеграм бота. А сегодня мы рассмотрим подключение телеграм бота к базе данных и сохранение какой-либо информации о пользователе, с которым общается бот.

В качестве базы данных мы будем использовать Yandex Cloud Database.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 4K
Комментарии 0

Functools – Инструменты для работы с функциями

Блог компании OTUS Python *Программирование *
Перевод

Для будущих студентов курса "Python Developer. Basic" подготовили перевод полезной статьи.

Модуль functools предоставляет инструменты для работы с функциями и другими вызываемыми объектами, чтобы адаптировать или расширить их для других целей, не переписывая полностью.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 3.6K
Комментарии 2