Я не думаю, что проблема состоит в том, что он пропускает эти крайние сроки.
я думаю, что у него есть настоящая проблема в оценке количества времени, которое она займет для выполнения задачи.
Сделали, чтобы он начал вести дневник того, что он говорит, что задача возьмет и сколько времени она на самом деле взяла его для выполнения задачи. В конечном счете этот журнал станет своего рода руководством для него для создания лучших оценок. Как только он становится лучше в оценке, он не должен чувствовать, как срочно отправлено или измотано.
Take a look at Data::Dump for something similar to Data::Dumper but arguably better at pretty printing.
Edit (20120304): I had completely forgotten this question, but it was upvoted today and that jogged my memory. If I had to recommend anything today (3 years later) for pretty printing in Perl, I would certainly go with Data::Printer. From Data::Printer's own Rationale:
Data::Dumper is a fantastic tool, meant to stringify data structures in a way they are suitable for being
eval
'ed back in.The thing is, a lot of people keep using it (and similar ones, like Data::Dump) to print data structures and objects on screen for inspection and debugging, and while you can use those modules for that, it doesn't mean mean you should.
This is where Data::Printer comes in. It is meant to do one thing and one thing only: отображать Perl-переменные и объекты на экране в правильном формате (для проверки человеком)
Если вы хотите сериализовать вывод для хранения (а не для отображения), взгляните на Storable s freeze ()
и ] оттепель ()
. Я съеживаюсь, когда вижу, что Data :: Dumper используется для сохранения структур данных в БД или кеше. : (
Одной альтернативой * Data :: Dumper будет JSON и его реализация на Perl JSON .
* Лучше ли решать вам.
Я довольно часто использую этот шаблон - я обнаружил, что он дает мне довольно большую гибкость, когда мне это нужно. В использовании он очень похож на классы в стиле Java.
var Foo = function()
{
var privateStaticMethod = function() {};
var privateStaticVariable = "foo";
var constructor = function Foo(foo, bar)
{
var privateMethod = function() {};
this.publicMethod = function() {};
};
constructor.publicStaticMethod = function() {};
return constructor;
}();
В нем используется анонимная функция, которая вызывается при создании и возвращает новую функцию-конструктор. Поскольку анонимная функция вызывается только один раз, вы можете создавать в ней частные статические переменные (они находятся внутри замыкания и видны другим членам класса). Функция конструктора в основном представляет собой стандартный объект Javascript - внутри него вы определяете частные атрибуты, а общедоступные атрибуты присоединяются к переменной this
.
По сути, этот подход сочетает в себе подход Крокфорда со стандартными объектами Javascript для создать более мощный класс.
If you're just looking for dump output: Smart::Comments
.
You just use
it.
use Smart::Commments;
And then you put any simple variable in a three-hash comment, like so:
my $v = black_box_process();
### $v
And it dumps it out in almost the prettiest print possible.
You can also manage more complex expressions like so:
### ( $a && ( $b ^ ( $c || $d ))) : ( $a && ( $b ^ ( $c || $d )))
But you have to watch it for "colon paths".
### $My::Package::variable
or
### %My::Package::
has never worked in my experience. If I want them to work then I need something like this:
my %stash = %My::Package::;
### %stash
It also does a number of other cute tricks, which you can see if you read the documentation.
Проблема заключалась в том, что UserControl выдавал ошибку DataBinding (видимую в окне вывода во время отладки)
Поскольку DataContext UserControl был установлен на «Self» в собственном xaml, он искал MainPageSelectedText в своем собственном контексте. (он не искал MainPageSelectedText в «MainPage», где, как вы могли подумать, он будет искать, потому что когда вы физически пишете / смотрите код, это то, что находится в «контексте»)
Я смог получить "работу", установив привязку в коде позади. Установка привязки в коде позади - единственный способ установить сам UserControl в качестве «источника» привязки. Но это работает, только если привязка двухсторонняя. Привязка OneWay нарушит этот код.