DeadMage #1781 11 сентября 2015 мы хотим, чтобы интегрировался в другие системы только модуль DataContracts, а Common никому виден и не был вообще.Если будет меняться DataContracts, то офк придется менять всё, но нам надо возможность менять произвольным образом Common, не трогая DataContracts. И чтобы никто кроме Common, о существовании DataContracts вообще не знал, кроме тех, кто будет собственно за взаимодействие отвечать.Если я правильно понял, можно сделать интерфейсы же просто? Ну типа сначала interface IClass1 { int getSmth(); } CommonsClass1 implements IClass1 { int getSmth() { return 1; } } Потом решили поменять CommonsClass1 implements IClass1 { int getSmthElse() { return 2; } int getSmth() { return getSmthElse(); } } А юзерам отдать Factory (ну или через DI инжектить): ClassFactory { IClass1 getClass1() { return new CommonsClass1(); } } Поделиться сообщением Ссылка на сообщение
Kant #1782 11 сентября 2015 Но в таком случае выходит, что юзерам придется и отдать библиотеку с Common классами, иначе они ничего никогда не создадут и не отправят нам. Если же они будут свою реализацию делать, то хер они ее нам отправят, тк у нас ведь нечем десериализовать.А управлять сериализацией через интерфейсы нельзя, всё равно ведь сериализовываться будет реализатор, а не интерфейс Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
DeadMage #1783 11 сентября 2015 Ну отдавайте им Common, почему нет? Если вы что-то поменяли вы отдаете им новую версию коммон классов, они просто заменяют jar/dll, или что там у вас, и все, интерфейс то вы по прежнему соблюдаете. Поделиться сообщением Ссылка на сообщение
Kant #1784 11 сентября 2015 отдавать и то и то, ведь действительно, интерфейс можно не менятьчето гениусом попахивает5 звезд тебе, 1 мне Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
Tinplz #1785 11 сентября 2015 потому что классы в модуле Common принадлежат нашему серверу, и мы не можем не менять там если нужно.Поэтому и надо некий отдельный модуль (DataContracts) со всем тем же, но где не будет меняться по каждому чиху. Но как заставить всё работать красиво?Ну так сделайте, в чем проблема? Красиво - это как?Ты делаешь модуль с базовыми классами. Ты делаешь модуль поверху который будет меняться часто. И делаешь по модулю для клиентов и для сервера, которые основываются на предыдущем. Поделиться сообщением Ссылка на сообщение
RDT3K #1786 11 сентября 2015 (изменено) Есть знающие ВБА?В общем, есть ячейка в которую вписывается имя и номер. Это имя заносится на другой лист в определенную ячейку. И нужно чтобы последующее Имя и номер добавлялись на строчку ниже. Написал такой код(в силу своих возможностей) Sub add()Dim a As String, b As String, c, da = Sheets("Add").Range("D5")b = Sheets("Add").Range("D6") For c = d To dd = c + 1Sheets("1st").Cells(d + 1, 1) = aSheets("1st").Cells(d + 1, 2) = bNext c End Sub Но дело в том, что при каждом нажатии кнопки(добавления), он записывает в туже самую ячейку, т.к. каждый раз "d = 1". Как сделать чтобы "d" запоминала значение. Я офк думал просто создать лист куда записывалось бы значение "d" и бралось от туда, но мб есть и другой способ Изменено 11 сентября 2015 пользователем RDT3K Поделиться сообщением Ссылка на сообщение
Just.Doit #1787 11 сентября 2015 (изменено) отдавать и то и то, ведь действительно, интерфейс можно не менятьчето гениусом попахивает5 звезд тебе, 1 мнея чет до сих пор не понимал в чем проблемаа теперь не понял в чем решение почему вообще коммон не может меняться в побочном модуле (новая версия накатывается через подключаемые либы новой версии) ?енивей для этого как раз полифорфизм и нужен (в том числе интерфейсный, как предложили выше)но собственно говоря почему без интерфейса нельзя? имя класса и метода и типы (сигнатура), енивей не должны меняться (тк это вещи которые на этапе придумывания архитектуры уже закрепляются железно, насколько знаю)подсовывание различных реализаций под общую абстракцию называется шаблоном Inversion of Control тоесть ты должен абстракции закрепить в архитектуре сразу, на этапе придумывания архитектуры. и абстракции хардкодятся (по интерфейсам или базовым/абстрактным классам.а чтобы подсовывать разные реализации конфигурационно (декларативно в хмл файле настроечном, например) используется IoC шаблонпри этом, вроде можно конфигурировать без ребилда/редеплоя/ребута (сервер не надо оффать если у вас новая версия джарника вышла) Изменено 11 сентября 2015 пользователем Just.Doit очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
TRiPL3 #1788 11 сентября 2015 Плюсую. Не проигрываю доту с 2013го - dotabuff Поделиться сообщением Ссылка на сообщение
Kant #1789 11 сентября 2015 там данные, а не методы, в этом проблеманадо данные гонять, интерфейс методов общения меняться будет раз в 1000 лет А вот структура этих данных может меняться. Мы можем у себя внутри добавлять необходимые нам служебные данныеТипы могут быть внутри специализированными, а внешним системам это не нужно, им например нужна просто строка там. Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
Just.Doit #1790 11 сентября 2015 (изменено) чето я нихуя не понимаюпроблема то в чем если у вас типа "своего протокола общения клиент-сервер" то как бы в любом случае либа на клиент должна как-то поставляться а если ты хочешь облегчить либу на клиент - то делаешь либу лишь из части классов. чтобы автоматом делалась полная либа на сервер и отдельно ее частичка для клиента - юзаешь automation build toolдля джавы - Maven / Gradle (не знаю актуален ли последний сейчас) Изменено 11 сентября 2015 пользователем Just.Doit очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
Tinplz #1791 11 сентября 2015 там данные, а не методы, в этом проблеманадо данные гонять, интерфейс методов общения меняться будет раз в 1000 лет А вот структура этих данных может меняться. Мы можем у себя внутри добавлять необходимые нам служебные данныеТипы могут быть внутри специализированными, а внешним системам это не нужно, им например нужна просто строка там.пронаследуйте с динамической линковкой от разных классов, 1 для клиента, другой для сервера. для клиента будет нуль, для сервера - данные.типа DataHolder : IContextData. IContextData содержит стуктуру которая нуль у клиентов, а на сервере нет. Поделиться сообщением Ссылка на сообщение
Just.Doit #1792 11 сентября 2015 (изменено) а язык то какой кстати. и какого плана система Изменено 11 сентября 2015 пользователем Just.Doit очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
KotZhilkina #1793 11 сентября 2015 Есть знающие ВБА?В общем, есть ячейка в которую вписывается имя и номер. Это имя заносится на другой лист в определенную ячейку. И нужно чтобы последующее Имя и номер добавлялись на строчку ниже. Написал такой код(в силу своих возможностей) Sub add()Dim a As String, b As String, c, da = Sheets("Add").Range("D5")b = Sheets("Add").Range("D6") For c = d To dd = c + 1Sheets("1st").Cells(d + 1, 1) = aSheets("1st").Cells(d + 1, 2) = bNext c End Sub Но дело в том, что при каждом нажатии кнопки(добавления), он записывает в туже самую ячейку, т.к. каждый раз "d = 1". Как сделать чтобы "d" запоминала значение. Я офк думал просто создать лист куда записывалось бы значение "d" и бралось от туда, но мб есть и другой способ проверяй последнюю использованную ячейку на листе,на который ты дублируешь данные, и записывай в следующую ячейку. Sub LastRowInOneColumn()'Find the last used row in a Column: column A in this example Dim LastRow As Long With ActiveSheet LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With MsgBox LastRowEnd Sub Sub LastColumnInOneRow()'Find the last used column in a Row: row 1 in this example Dim LastCol As Integer With ActiveSheet LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column End With MsgBox LastColEnd Sub Публикация отключена Поделиться сообщением Ссылка на сообщение
RDT3K #1794 11 сентября 2015 Есть знающие ВБА?В общем, есть ячейка в которую вписывается имя и номер. Это имя заносится на другой лист в определенную ячейку. И нужно чтобы последующее Имя и номер добавлялись на строчку ниже. Написал такой код(в силу своих возможностей) Sub add()Dim a As String, b As String, c, da = Sheets("Add").Range("D5")b = Sheets("Add").Range("D6") For c = d To dd = c + 1Sheets("1st").Cells(d + 1, 1) = aSheets("1st").Cells(d + 1, 2) = bNext c End Sub Но дело в том, что при каждом нажатии кнопки(добавления), он записывает в туже самую ячейку, т.к. каждый раз "d = 1". Как сделать чтобы "d" запоминала значение. Я офк думал просто создать лист куда записывалось бы значение "d" и бралось от туда, но мб есть и другой способ проверяй последнюю использованную ячейку на листе,на который ты дублируешь данные, и записывай в следующую ячейку. Sub LastRowInOneColumn()'Find the last used row in a Column: column A in this example Dim LastRow As Long With ActiveSheet LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With MsgBox LastRowEnd Sub Sub LastColumnInOneRow()'Find the last used column in a Row: row 1 in this example Dim LastCol As Integer With ActiveSheet LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column End With MsgBox LastColEnd Sub Спс Поделиться сообщением Ссылка на сообщение
Kant #1795 11 сентября 2015 там данные, а не методы, в этом проблеманадо данные гонять, интерфейс методов общения меняться будет раз в 1000 лет А вот структура этих данных может меняться. Мы можем у себя внутри добавлять необходимые нам служебные данныеТипы могут быть внутри специализированными, а внешним системам это не нужно, им например нужна просто строка там.пронаследуйте с динамической линковкой от разных классов, 1 для клиента, другой для сервера. для клиента будет нуль, для сервера - данные.типа DataHolder : IContextData. IContextData содержит стуктуру которая нуль у клиентов, а на сервере нет.если я правильно тебя понял, то это автоматом доступно из-за хмл сериализации. Она и так просто проигнорит те поля в хмле, для которых не нашлось полей класса и наоборот.Но это не помогает при надобности изменения типа \ переименовании . а язык то какой кстати. и какого плана системаШишарп, сервер банка, но тут это в общем не имеет значения Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
Lorde - Sober ll #1796 11 сентября 2015 (изменено) можно ли наложить градиент на фоновую картинку? отрабатывал варики из гугла но чет они как-то хуево отработались. как варик можно тень ебошить, но мне интересно можно ли градиент можно ли ебошить анимацию с градиентами? я чет даже не гуглил, но это тоже интереснанагуглил это ( http://css.yoksel.ru/animation-for-gradients/ ) Изменено 11 сентября 2015 пользователем DnoInvokera have courage and be kind 😈🫀💋 🩸👣🤌🏿🦄 🐝✨ ⚡️ ☄️❣️ 💕 💞❤️😈 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 Поделиться сообщением Ссылка на сообщение
.felix #1797 11 сентября 2015 Анимация на картинке "проCss" просто преич Поделиться сообщением Ссылка на сообщение
Lorde - Sober ll #1798 11 сентября 2015 я в общем-то закрыл для себя второй вопросhttp://www.gradient-animator.com/ have courage and be kind 😈🫀💋 🩸👣🤌🏿🦄 🐝✨ ⚡️ ☄️❣️ 💕 💞❤️😈 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 Поделиться сообщением Ссылка на сообщение
Tiko11 #1799 11 сентября 2015 (изменено) Парни есть пару вопросиков по жс , вот есть заготовка : http://cssdeck.com/labs/nvfimwqa ;И вот как в ней сделать так, чтобы когда я кликаю на определнный <i> там менялся класс где я кликнул на (.actived), а старый удалялся.(целый вечер пытаюсь и у меня не получается, хочется уже посмотреть как будет).И еще вопросец как мне потом сделать так когда я кликаю на тотже <i> чтобы у другого класcа в самом css(или как оно делается хз) менялся nth:child , например был slide:nth-child(1) { display:block} , и чтоб стал nth:child(2) . (3 слайда лежат друг под другом и нтх-чилд их показывает)Вот это кто объяснит как сделать или что почитать буду очень рад. заранее спасибо. мой жс var radiobuttons = document.querySelector(".slider-controls"); var z = radiobuttons.querySelectorAll('i'); z.onclick = function() { z.classList.add('actived'); }Вот так пытался, но почему то не работает( Изменено 11 сентября 2015 пользователем Tiko11 Поделиться сообщением Ссылка на сообщение
fessnik #1800 11 сентября 2015 (изменено) Парни есть пару вопросиков по жс , вот есть заготовка : http://cssdeck.com/labs/nvfimwqa ;И вот как в ней сделать так, чтобы когда я кликаю на определнный <i> там менялся класс где я кликнул на (.actived), а старый удалялся.(целый вечер пытаюсь и у меня не получается, хочется уже посмотреть как будет).И еще вопросец как мне потом сделать так когда я кликаю на тотже <i> чтобы у другого класcа в самом css(или как оно делается хз) менялся nth:child , например был slide:nth-child(1) { display:block} , и чтоб стал nth:child(2) . (3 слайда лежат друг под другом и нтх-чилд их показывает)Вот это кто объяснит как сделать или что почитать буду очень рад. заранее спасибо. мой жс var radiobuttons = document.querySelector(".slider-controls"); var z = radiobuttons.querySelectorAll('i'); z.onclick = function() { z.classList.add('actived'); }Вот так пытался, но почему то не работает( На jQuery так var $control = $('.slider-controls');$control.on('click','i',function(){$control.find('.actived').removeClass('actived'); $(this).addClass('actived');}); Показывать слайды по нтх-чилд мне кажется неочень идея... Изменено 11 сентября 2015 пользователем fessnik Поделиться сообщением Ссылка на сообщение