Pull to refresh
0
0
Валерий Махов @grayhat

User

Send message
Это был риторический вопрос.
lol. У JetBrains есть менеджеры по продажам, которых учили не хамить клиентам?
Почему вдруг? Нужно говорить «когда их в очередной раз взломают».
Вот недавно взламывали. geektimes.ru/post/251842
Прежде чем начинать выпендриваться своими нанооптимизациями, стоит вспомнить про benchmark.
А то программа после этих нанооптимизаций начинает медленней работать.

explain ANALYZE SELECT * FROM messages order by created_at limit 1;

QUERY PLAN

 Limit  (cost=0.14..1.15 rows=1 width=49) (actual time=0.009..0.009 rows=1 loops=1)
   ->  Index Scan using my_index on messages  (cost=0.14..12.31 rows=12 width=49) (actual time=0.008..0.008 rows=1 loops=1)
 Planning time: 0.059 ms
 Execution time: 0.022 ms



explain ANALYZE SELECT * FROM messages WHERE created_at = (SELECT min(created_at) FROM messages);

QUERY PLAN

 Seq Scan on messages  (cost=1.16..2.31 rows=1 width=49) (actual time=0.016..0.018 rows=1 loops=1)
   Filter: (created_at = $1)
   Rows Removed by Filter: 11
   InitPlan 2 (returns $1)
     ->  Result  (cost=1.15..1.16 rows=1 width=0) (actual time=0.008..0.008 rows=1 loops=1)
           InitPlan 1 (returns $0)
             ->  Limit  (cost=0.14..1.15 rows=1 width=8) (actual time=0.007..0.007 rows=1 loops=1)
                   ->  Index Only Scan using my_index on messages messages_1  (cost=0.14..12.34 rows=12 width=8) (actual time=0.006..0.006 rows=1 loops=1)
                         Index Cond: (created_at IS NOT NULL)
                         Heap Fetches: 1
 Planning time: 0.096 ms
 Execution time: 0.040 ms
Это создаёт информационный шум. Имеет смысл только не забывать возвращать nil в методах, которые должны возвращать nil.
fixed:

# Ruby-метод для создания объекта нужного класса
def self.Operation type
  const_get("Operation::#{type.capitalize}").new
rescue NameError
  fail "Неизвестный тип"
end

class Operation
  class Event < self; end
  class Task < self; end
end
operation = Operation :event
Ruby-метод для создания объекта нужного класса
def self.Complect type
  const_get("Complect::#{type.capitalize}").new
rescue NameError
  fail "Неизвестный тип"
end

module Complect
  class Event; end
  class QC; end
  class Tast; end
end

complect = Complect :event
enum в ruby:
ProtocolElementTypeName = [:task, :note, :event].freeze

ProtocolElementTypeName.include?(type) or fail

Спецслужбы могут с точностью определить местонахождение мобилы, могут удалённо включить микрофон на любой мобиле, если, конечно, из неё не вынули аккумулятор. FBI может определить местонахождение авто с On-Star, а также скрытно включить микрофон.
Demonoid:
sarzwwd89ucsqhpn6vs82l536w4rg9kv289
2v8du512mdfbxc965r4l6kcjcxy212psu2vn3w9nnroju
inl9vzopu0oxwiaveeu0d1l2tmrtfgov6
177hezlcs6jnakygw35fdf4fz0dguytlak0whb80
k5z7boob8neg4inbfoobt8pjovj4ik9g4fx1ise8y0q
Вы отстали от жизни. Они уже давно это ограничение сняли.

Information

Rating
Does not participate
Registered
Activity